gpt4 book ai didi

Java 双重麻烦 - 如何在不使用 BigDecimal 的情况下确保 4.45 是 4.45?

转载 作者:行者123 更新时间:2023-11-30 06:16:59 26 4
gpt4 key购买 nike

<分区>

所以:

//aValue = 4.45
//bValue = 4.35
//maxValueDiff = 0.1
//The absolute value of a - b = 0.1

if( Math.abs(aValue - bValue) <= maxValueDiff ) return true;
logger.info("valueDiffCheck a:" + aValue +" b:"+ bValue + " e1:" + maxValueDiff);

为什么我会在我的日志中看到这个:

valueDiffCheck a:4.45 b:4.35 e1:0.1

怀疑这是因为 Double 是一种双重痛苦,但它不准确,但如果是这样的话,我不应该看到吗?就像它应该打印 0.1 实际上是 0.10000000111 之类的? ...或者打印格式有什么问题?

目标代码具有大量数据的高性能,因此我们不想使用 BigDecimal。下一个确保 0.44 为 0.44 的最佳方法是什么?

好吧,让我明确地说,我们只需要小数点后两位。使用 BigDecimal 所涉及的准确性是主要的矫枉过正。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com