@Test
public void test2() throws Exception {
System.out.println( 0.05 + 0.01 );
System.out.println( 1.0 - 0.42 );
System.out.println( 4.015 * 100 );
System.out.println( 123.3 / 100 );
System.out.println( ( 1.2 - 0.3 ) == 0.9 );
System.out.println(0.2 + 0.1);
System.out.println(0.3 - 0.1);
System.out.println(0.2 * 0.1);
System.out.println(0.3 / 0.1);
System.out.println( 0.20 + 0.4 );
}
结果
0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999
false
0.30000000000000004
0.19999999999999998
0.020000000000000004
2.9999999999999996
0.6000000000000001
原因
我们的计算机在存储小数时肯定是有长度限制的,所以会进行截取部分小数进行存储,从而导致计算机存储的数值只能是个大概的值,而不是精确的值。从这里看出来我们的计算机根本就无法使用二进制来精确的表示 2.1 这个十进制数字的值,连表示都无法精确表示出来,计算肯定是会出现问题的。
现有有三种办法
- 如果业务不是必须非常精确的要求可以采取四舍五入的方法来忽略这个问题。
- 转成整型再进行计算。
- 使用 BCD 码存储和运算二进制小数(感兴趣的同学可自行搜索学习)。
一般每种语言都用高精度运算的解决方法(比一般运算耗费性能),比如 Python 的 decimal 模块,Java 的 BigDecimal
<audio controls="controls" style="display: none;"></audio>
相关推荐
4字节浮点数计算工具
为了方便调试电力通信规约,自己写的一个小工具,主要是计算浮点数使用,计算4字节的浮点数.附加了16进制转化10进制的功能.
NULL 博文链接:https://xide829.iteye.com/blog/663554
IEEE浮点数计算机内二进制表示显示.viIEEE浮点数计算机内二进制表示显示.viIEEE浮点数计算机内二进制表示显示.vi
支持浮点数计算 修改之后能过整型添加 a=(int)a;
输入的时候有两个选项:请收入需要转换的浮点数,这个时候如果是想将十进制的数据转换为浮点数的话 直接输入十进制 如果将报文数据转换成十进制的话就需要在一开始的时候先随便输入一个数据跳过“请收入需要转换的...
分享自己收藏的IEEE754浮点数计算程序
Delphi GMP任意精度整数、有理数、浮点数计算库
一个关于浮点数的计算软件,也就是一个浮点数对应的4字节数值是多少,该软件会帮你显示出来,特别在一个通讯传输,或则在调试算法的时候这个软件还是很有用的
输入4个字节的浮点数,自动装换成浮点数。还有16进制转换
STEP7-300浮点数计算的时候怎么设置保留的小数位数呢
简单的计算器,MFC完成,供新手学习参考 具有基本整型浮点数计算功能等。
深入介绍浮点数的存储形式,讲解误差形成的缘由!新的层面,新的认知!!
小工具集合:各种数据格式转换;CRC码计算;按位与and/按位或or 等等。很强大很好用
在计算机中有关浮点数转二进制的计算方法,里面讲得很清楚,原来是PPT文档,我已转成PDF的格式,看起来非常舒服。在编程中,特别是一些算法中经常用会一些浮点数的计算
BigDecimal类是一个大小数操作类,可以用来对超过16位有效位的数据进行精确的运算,在这里我们使用BigDecimal类来解决浮点数计算产生的精度丢失问题。 精度问题 在这里我们讨论一个问题:3 – 2.7 == 0.3 的值是什么...
主要介绍了JavaScript解决浮点数计算不准确问题的方法,结合实例形式分析了javascript浮点数运算精度误差的原因以及相关的解决方法与具体操作技巧,需要的朋友可以参考下
floatNumCompute 浮点数计算(加减乘除)加法0.2 + 0.1 = 0.30000000000000004通过computeAdd(0.2, 0.1) 可以得到正确结果 0.3;减法0.3 - 0.1 = 0.19999999999999998通过computeSub(0.3, 0.1) 可以得到正确结果 0.2;...
4个字节的十六进制数填入软件最上面的文本框中,点击计算按钮显示最终结果
自己写的一篇分析文章,系统地讲述了计算机浮点计算的误差来源并提供一些避免方法。