问题很简单,是由于我们输入的十进制的 double 类型的数据在进行计算的时候,计算机会先将其转换为二进制数据,然后再进行相关的运算。 然而在十进制转二进制的过程中,有些十进制数是无法使用一个有限的二进制数来表达的,换言之就是转换的时候出现了精度的丢失问题,所以导致最后在运算的过程中,自然就出现了我们看到的一幕。
Java 语言中最经典的便是使用 BigDecimal 来解决。
参考:https://www.jianshu.com/p/353834bbe7da
BigDecimal:https://baike.baidu.com/item/BigDecimal/5131707?fr=aladdin
标签:java,BigDecimal,二进制,double,丢失,十进制 From: https://www.cnblogs.com/2008nmj/p/16594616.html