java中的Double为什么不能精确处理数据

xiaoxiao2023-03-22  48

如果用double类型数据来计算浮点数的化,会损失精度,如用System.out.println(1.0d-0.9d)将向控制台输出0.09999999999999998,而不是0.1,出现这种问题主要原始是因为浮点数数值采用二进制表示,在二进制系统之无法精确表示1/10,就像十进制无法表示1/3一样,这样就产生了误差,如果想尽量避免误差,就应用BigDecimal类来运算,尤其是在金融领域. strictfp修饰符来标记方法或者类,只能进行严格的浮点运算,却不能避免上面的错误
转载请注明原文地址: https://www.6miu.com/read-4987485.html

最新回复(0)