gpt4 book ai didi

java - java中的除法

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:25 24 4
gpt4 key购买 nike

我在 Java 中有一个简单的除法:

float f = 19.7f/100;
System.out.println(f); // 0.19700001

double d = 19.7/100;
System.out.println(d); // 0.19699999999999998

为什么会这样?

最佳答案

这是有史以来最常被问到的问题之一,所以我将在这里提出几点。

  1. 计算机只能表示有限数量的数字,因此在存储数字和稍后除法时必须进行四舍五入。这种舍入自然会产生误差,但如果您只需要 3 位数的精度,那么它们对您来说应该无关紧要。

  2. 四舍五入的行为有点不可预测,因为计算机以二进制形式存储数字。因此,虽然 19.7 是终止小数,但相同的数字是二进制的重复小数 -- 10011.10110011001100110011001100110011... ... 因此您可以看到,在任意点四舍五入将产生无法从终止小数表达式预测的行为。

关于java - java中的除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171762/

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