返回顶部
首页 > 资讯 > 精选 >Java中高精度整数与高精度小数的区别有哪些
  • 588
分享到

Java中高精度整数与高精度小数的区别有哪些

java高精度整数高精度小数 2023-05-31 07:05:06 588人浏览 独家记忆
摘要

Java中高精度整数与高精度小数的区别有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留

Java中高精度整数与高精度小数的区别有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差:

在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误差的,为了减小和防止这种误差的出现,我们需要使用BigInteger类和BigDecimal类来计算。

package com.ietree.base.number;import java.math.BigDecimal;import java.math.BigInteger;public class BigIntegerTest {  public static void main(String[] args) {    float f1 = 123.01f + 2.01f;    // 预期输出:125.02,实际输出:125.020004    System.out.println(f1);    // 预期输出:125.02,实际输出:125.02000000000001    System.out.println(123.01 + 2.01);    System.out.println("===============================");    // 高精度整数测试    BigInteger bint1 = new BigInteger("125");    BigInteger bint2 = new BigInteger("999");    BigInteger tmp;    // 相加    tmp = bint1.add(bint2);    System.out.println("bint1 + bint2 = " + tmp);    // 相减    tmp = bint2.subtract(bint1);    System.out.println("bint2 - bint1 = " + tmp);    // 相乘    tmp = bint1.multiply(bint2);    System.out.println("bint1 * bint2 = " + tmp);    // 相除    tmp = bint2.divide(bint1);    System.out.println("bint2 / bint1 = " + tmp);    // 求余数    tmp = bint2.remainder(bint1);    System.out.println("bint2 % bint1 = " + tmp);    // 求次方    tmp = bint2.pow(2);    System.out.println("bint2的二次方 = " + tmp);    System.out.println("======================================");    // 高精度小数测试    BigDecimal bd1 = new BigDecimal(123.01);    BigDecimal bd2 = new BigDecimal(2.01);    BigDecimal bd;    // 相加    bd = bd1.add(bd2);    System.out.println("bd1 + bd2 = " + bd);    // 相减    bd = bd1.subtract(bd2);    System.out.println("bd2 - bd1 = " + bd);    // 相乘    bd = bd1.multiply(bd2);    System.out.println("bd1 * bd2 = " + bd);    // 相除    // bd = bd1.divide(bd2);    bd = bd1.divide(new BigDecimal(2.0));    System.out.println("bd1 / 2.0 = " + bd);    // 求余数    bd = bd1.remainder(bd2);    System.out.println("bd2 % bd1 = " + bd);    // 求次方    bd = bd1.pow(3);    System.out.println("bd2的三次方 = " + bd);    System.out.println("======================================");    // 四舍五入保留小数位数    BigDecimal bd3 = new BigDecimal(123.01).setScale(5,5);    System.out.println("bd3 = " + bd3);  }}

--结束END--

本文标题: Java中高精度整数与高精度小数的区别有哪些

本文链接: https://lsjlt.com/news/224221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中高精度整数与高精度小数的区别有哪些
    Java中高精度整数与高精度小数的区别有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留...
    99+
    2023-05-31
    java 高精度整数 高精度小数
  • java高精度转低精度的原则有哪些
    在Java中,高精度转低精度的原则主要有以下几点:1. 舍入:高精度值转换为低精度时,可能会存在小数部分被丢弃的情况,需要进行舍入处...
    99+
    2023-08-16
    java
  • Java 高精度的大数字运算方式
    目录Java 高精度的大数字运算高精度整数BigInteger高精度浮点数BigDecimal(1)BigInteger和BigDecimal都是不可变(immutable)(2)B...
    99+
    2024-04-02
  • java中求高精度除法,要求保留N位小数
    目录求高精度除法,要求保留N位小数题目要求java 大数处理和高精度小数处理(so easy)简单的例子:部分简单代码求高精度除法,要求保留N位小数 题目要求 高精度除法,要求保留N...
    99+
    2024-04-02
  • [Python3]计算高精确度的浮点数方
    计算高精确度的浮点数方法借助decimal模块的”getcontext”和”Decimal”方法from decimal import *getcontext().prec = 50 #50精度a = Decimal(1) / Decim...
    99+
    2023-01-31
    精确度 浮点数
  • java浮点精度运算不精确的原因有哪些
    Java浮点数运算不精确的原因主要有以下几点:1. 浮点数的表示方式:Java中的浮点数类型(float和double)采用的是IE...
    99+
    2023-08-16
    java
  • C/C++高精度运算(大整数运算)详细讲解
    目录前言什么是大整数 大整数的表示大整数的运算1、高精度加法2、高精度减法3、高精度乘以低精度4、高精度除以低精度大整数的表示补充:使用示例总结前言 高精度的运算在算法题尤...
    99+
    2022-11-13
    c++ 高精度计算 c++高精度加法 c语言大整数运算
  • Java Float 保留小数位精度的实现
    目录Float 保留小数位精度Float 浮点型数据保留两位小数1、DecimalFormat2、Math.round()Float 保留小数位精度 DecimalFormat ...
    99+
    2024-04-02
  • PHP8中的函数:fdiv(),用于进行高精度的数值计算
    近日,PHP8版本已经正式发布,为广大开发者带来了许多贴心的更新和新功能。其中,fdiv()函数的引入,给进行高精度计算的开发者们带来了福音。fdiv()函数是PHP8中新增的一个用于计算高精度数值的函数,可以在PHP开发中进行更加精细化的...
    99+
    2023-05-18
    PHP fdiv()函数 高精度计算
  • Java中的高精度计算怎么利用BigDecimal实现
    本篇文章给大家分享的是有关Java中的高精度计算怎么利用BigDecimal实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先看如下代码示例:System.out.prin...
    99+
    2023-05-31
    java ava bigdecimal
  • Python与C++的速度有哪些区别
    这篇文章主要讲解了“Python与C++的速度有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python与C++的速度有哪些区别”吧!DNA K-mers简介DNA是一种称为核苷酸...
    99+
    2023-06-15
  • 驾驭PHP BCMath扩展:开启高精度数学的大门
    PHP BCMath扩展是PHP标准库中一个强大的工具,它提供了丰富的函数库,能够处理大数字、小数和分数等复杂的计算。与PHP内置的数学运算符和函数相比,BCMath扩展能够提供更高的精度和更广泛的运算范围,从而满足各种科学、工程和金融...
    99+
    2024-02-21
    PHP BCMath 高精度数学 大数字 小数 分数 计算
  • 高防IP与高防CDN的区别有哪些
    高防IP与高防CDN的区别有:1、应用场景不同,高防IP主要是应用在游戏上,高防CDN主要应用在网站、网页服务上;2、重点防御类别不同,高防IP主要防御DDOS攻击,高防CDN主要防御CC攻击;3、运作模式不同,高防CDN可以进行数据处理,...
    99+
    2024-04-02
  • Apache Java API 自然语言处理:如何提高数据分析的精度?
    自然语言处理(NLP)是一种人工智能技术,它涉及从人类语言中提取信息。NLP 已经成为数据分析领域中不可或缺的一部分。Apache Java API 自然语言处理是一种流行的 NLP 库,它提供了多种工具和算法,可以帮助您处理和分析大量的...
    99+
    2023-10-18
    api apache 自然语言处理
  • 如何进行Java Float保留小数位精度的实现
    如何进行Java Float保留小数位精度的实现,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Float 保留小数位精度DecimalFormat de...
    99+
    2023-06-25
  • PHP BCMath黑皮书:掌握高精度数学计算的秘诀
    1. BCMath 简介 BCMath 扩展是一个 PHP 内置扩展,提供了高精度数学计算能力,支持小数点后最多 16 位的精度,满足各种复杂数学操作的需求。 2. BCMath 函数 BCMath 提供了丰富且实用的函数库,涵盖了基本...
    99+
    2024-02-21
    PHP BCMath 高精度数学计算 科学运算 数字处理
  • 高防服务器与高防IP的区别有哪些
    高防服务器与高防IP的区别有:1.防御攻击类型不同,高防IP主要防御DDoS和CC攻击,高防服务器可以抵御多类攻击;2.操作方式不同,高防IP是将攻击流量牵引到高防IP;高防服务器是通过防火墙防御攻击;3.价格不同,高防IP价格高,防服务器...
    99+
    2024-04-02
  • java中数值范围的精度丢失如何解决
    java中数值范围的精度丢失如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.java中int,float,long,double取值范围public class Te...
    99+
    2023-05-31
    java ava
  • java数组与javascript数组有哪些区别
    本篇内容主要讲解“java数组与javascript数组有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java数组与javascript数组有哪些区别...
    99+
    2024-04-02
  • 分布式系统中的二维码识别技术与Python的结合,如何提高识别精度?
    随着移动互联网的发展,二维码逐渐成为了一种便捷的信息传递方式。在分布式系统中,二维码识别技术也被广泛应用。本文将介绍二维码识别技术在分布式系统中的应用以及如何通过Python提高二维码识别精度。 一、分布式系统中的二维码识别技术应用 在分...
    99+
    2023-10-02
    关键字 二维码 分布式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作