gpt4 book ai didi

Java:检查两个 double 值是否匹配特定的小数位数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:27 26 4
gpt4 key购买 nike

比较这两个值应得出“真”:

53.9173333333333  53.9173

最佳答案

如果您希望 a = 1.00001b = 0.99999 被识别为相等:

return Math.abs(a - b) < 1e-4;

否则,如果您希望 a = 1.00010b = 1.00019 被识别为相等,并且 ab 是积极的而且不是很大:

return Math.floor(a * 10000) == Math.floor(b * 10000);
// compare by == is fine here because both sides are integral values.
// double can represent integral values below 2**53 exactly.

否则,使用truncate 方法,如Are there any functions for truncating a double in java? 所示。 :

BigDecimal aa = new BigDecimal(a);
BigDecimal bb = new BigDecimal(b);
aa = aa.setScale(4, BigDecimal.ROUND_DOWN);
bb = bb.setScale(4, BigDecimal.ROUND_DOWN);
return aa.equals(bb);

关于Java:检查两个 double 值是否匹配特定的小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2944344/

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