主要原因:就是因为double会导致数据不准确,不准确的原因如下所示
高于大小的比特会被自动删除,但是在删除的过程中还需要遵循 IEEE-754 规范,这就是我们理解的删除不应该会让数变小吗?为什么计算机的计算会变大?
如果最后一位是1左移一位继续,循环此过程,而不像int是1也给你删除,这就是变大的原因了。
所以对于需要精确计算的一定要使用bigDecimal,比如设计钱的问题。
主要原因:就是因为double会导致数据不准确,不准确的原因如下所示
高于大小的比特会被自动删除,但是在删除的过程中还需要遵循 IEEE-754 规范,这就是我们理解的删除不应该会让数变小吗?为什么计算机的计算会变大?
如果最后一位是1左移一位继续,循环此过程,而不像int是1也给你删除,这就是变大的原因了。
所以对于需要精确计算的一定要使用bigDecimal,比如设计钱的问题。