Java 浮点数值_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 浮点数值

Java 浮点数值

 2017/10/3 0:42:58  技术无涯苦作舟  程序员俱乐部  我要评论(0)
  • 摘要:Java中的两种浮点类型:float和double浮点数值不适用于无法接受舍入误差的计算中。舍入误差的主要原因在于浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数1/10,这就像十进制无法精确的表示分数1/3一样。所以如果数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。二进制系统中无法精确地表示分数1/10何解?1/10换算成二进制为1/1010,结果无限循环的小数,所以二进制无法用有限的位数来表示0.1.二进制能用有限的位数表示的一些数,比如0.5,0.25等
  • 标签:Java
Java中的两种浮点类型: float和double

浮点数值不适用于无法接受舍入误差的计算中。舍入误差的主要原因在于浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数1/10,这就像十进制无法精确的表示分数1/3一样。

所以如果数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

二进制系统中无法精确地表示分数1/10何解?
1/10换算成二进制为1/1010,结果无限循环的小数,所以二进制无法用有限的位数来表示0.1.
二进制能用有限的位数表示的一些数,比如0.5, 0.25等。
0.5, 0.25换算成二进制为101/1010,11001/1100100,所以二进制能用有限的位数来表示0.5, 0.25等。

十进制无法精确的表示分数1/3同理。
上一篇: PHP字符串替换str_replace()函数4种用法详解 下一篇: 没有下一篇了!
发表评论
用户名: 匿名