我在Java中有一个非常简单的部门(这是每小时的产品数量/产量),但是每当进行此部门时,我都会遇到奇怪的错误:
float res = quantity / standard;
我已经用多个值尝试了上述除法,但总是会出错,但是我在其他地方尝试并获得正确的方法是:
世界各地:
13.6 = 6800 / 500;
Java:
13.0 = 6800 / 500;
我已经研究了BigDecimal和BigInteger,但是我还没有找到一种用它们创建这种划分的方法,还有其他方法可以在Java中进行这种划分而不会产生精度错误吗?
任何帮助将不胜感激。
您正在对整数进行除法,这意味着您正在使用整数除法。
在整数除法中,结果的小数部分将被丢弃。
请尝试以下操作:
float res = (float) quantity / standard;
^^^^^^^
上面的方法将分子视为a float
,这反过来又促使分母也浮动,并且执行了除法运算,而不是整数除法。
请注意,如果要处理文字,则可以更改
float f = 6800 / 500;
包括f
使分母成为浮点数的后缀:
float f = 6800f / 500;
^
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句