gpt4 book ai didi

floating-point - 为什么对 double 值的操作不能给出预期的结果?

转载 作者:行者123 更新时间:2023-12-04 06:42:59 26 4
gpt4 key购买 nike

    System.out.println(2.14656);

2.14656
    System.out.println(2.14656%2);

0.14656000000000002

跆拳道?

最佳答案

确实给出了预期的结果。你的期望是不正确的。

当您键入 double 文字时 2.14656 ,您实际得到的是最接近的 double 值,即:

2.14656000000000002359001882723532617092132568359375
println当它打印出来时碰巧把它舍入(到 17 个有效数字),所以你会看到你期望的好值。

经过模数运算(这是精确的)后,该值为:
0.14656000000000002359001882723532617092132568359375

同样,这在打印时会四舍五入,但因为前导数字少一位,所以圆点向右一位数字,因此您会看到尾随 2 .

关于floating-point - 为什么对 double 值的操作不能给出预期的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892908/

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