Java/Pawn 数学公式 returns 0

Java/Pawn Maths formula returns 0

谁能解释一下我做错了什么,我怎样才能使这个公式起作用?现在 returns 0 在 Java 和 Pawn 中。但它适用于 PHP,这对我来说意义不大。

int test = (65 / 65 / (1 + 25) * 10000);

在Java中,整数除法会截断结果。例如,5/2 会将 2.5 截断为 2

为确保您将 float 与数字常量一起使用,请在末尾添加一个 .0,如:

int test = (65.0 / 65.0 / (1.0 + 25.0) * 10000.0);

Java乘除运算是从左到右,所以你的表达式是:

(((65 / 65) / 26) * 1000)  // Clarifying parenthesis
((1 / 26) * 1000)          
(0 * 1000)                 // integer division!
0

为避免这种情况,您只需确保将操作转换为双精度。

简单的方法就是将第一个值更改为双精度值,方法是:

int test = (65D / 65 / (1 + 25) * 10000);

int test = (65.0 / 65 / (1 + 25) * 10000);

但是,如果您稍后要重构代码,您可能想要更改的不仅仅是第一个值。