为什么java中56.4+55.3的值是111.69999999

为什么java中56.4+55.3的值是111.69999999
为什么java中56.4+55.3的值是111.69999999
为什么java中56.4+55.3的值是111.69999999
img

浮点数计算精度的问题
参考文章
浮点数运算精度问题分析与解决方案_学习记录-CSDN博客_怎么解决浮点数精度问题 最近在项目中遇到精度计算问题,用Double类型的数据减去Double类型的数据,得出的结果在预期之外,经过一番思考与学习,最后找到解决问题的方案。一、浮点数运算导致精度问题现象代码如下:Double num1 = 2.1;Double num2 = 2.0;System.out.println(num1 - num2);用人类的口算可以知道,结果是0.1。可是... https://blog.csdn.net/one_Jachen/article/details/98059231
关于float浮点数计算精度问题的深入分析_半斤米粉闯天下的博客-CSDN博客 在Java中,或者说在任何一门语言中,float和double两种类型浮点数计算的精度问题都是老生常谈了。在进行跟钱相关的计算时(毕竟是白花花的银子)的时候如果不注意这两种浮点类型往往会出现许多莫名其妙的bug且难以排查,所以我们不管见到什么一股脑全用BigDecimal算了,也是一种你好我好大家好的万金油方案。但是为什么会有浮点数误差?Java中float有效位数为7位为什么却连0.1都存不了?... https://blog.csdn.net/u012760435/article/details/89137365
如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

浮点型在计算过程中会出现精度丢失。
在计算机中,保存这个数使用的是浮点表示法,分为三大部分:
第一部分用来存储符号位(sign),用来区分正负数,这里是0,表示正数
第二部分用来存储指数(exponent)
第三部分用来存储小数(fraction)
所以一般在对精度要求较高的计算中,用BigDecimal工具类来解决精度丢失问题。

img