为什么整数除法代码给出错误的答案? [复制]

2023-12-26

我在 Java 中有一个非常简单的划分(它是产品数量/每小时产量),但是每当我进行这种划分时,我都会遇到奇怪的错误:

float res = quantity / standard;

我已经用几个值尝试了上述除法,但总是出错,但是我在其他地方尝试过并得到正确的结果是:

世界各地:

13.6 = 6800 / 500;

Java:

13.0 = 6800 / 500;

我研究了 BigDecimal 和 BigInteger,但是我还没有找到用它们创建此除法的方法,是否有其他方法可以在 Java 中进行此除法而不会出现精度错误?

任何帮助将不胜感激。


您正在除以整数,这意味着您正在使用整数除法.

在整数除法中,结果的小数部分被丢弃。

请尝试以下操作:

float res = (float) quantity / standard;
            ^^^^^^^

上述强制分子被视为float这反过来又促使分母也浮动,并且执行浮点除法而不是整数除法。

请注意,如果您正在处理文字,则可以更改

float f = 6800 / 500;

包括f使分母成为浮点数的后缀:

float f = 6800f / 500;
              ^
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么整数除法代码给出错误的答案? [复制] 的相关文章

随机推荐