我必须对整数进行运算,非常简单:
a=b/c*d
其中所有变量都是整数,但无论参数的值是什么,结果都是零。我猜测是对这种类型的数据(int)的操作有问题。
我解决了先转换 float 再转换整数的问题,但我想知道是否有更好的方法。
最佳答案
/
运算符与整数一起使用时,会进行整数除法,我怀疑这不是您想要的。特别是,2/5
为零。
正如您所说,解决此问题的方法是将一个或多个操作数转换为例如a float
,然后使用 Math.floor
、Math.round
或 Math 将生成的浮点值转回整数。天花板
。这确实不是一个糟糕的解决方案;你有一堆整数,但你确实想要浮点计算。输出可能不是整数,因此您可以指定如何将其转换回来。
更重要的是,我不知道有任何语法可以比(例如)更简洁和可读:
a = Math.round((float)b / c * d)
关于java - 与整数 : result is only zero - Java 的运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412980/