为什么int exp1 = 14/20 * 100; 在java中等于’0’?

我正在尝试做一些基本的数学运算,并且它一直弹出为0 。 我确定它与int但我不知道如何解决它。 我需要使用整数,但数学到达那些整数使用小数。 我该怎么做?

这对黑莓来说并不特别,它是标准的java行为。

这是因为你在做整数数学:

 int subexpr1 = 14 / 20; // 0 int subexpr2 = subexpr1 * 100; // 0 

使用双倍代替或更改顺序

 int expr1 = (int) 14.0/20 * 100; // Very small possibility of rounding errors int expr2 = 14 * 100 / 20; // Will ignore fraction parts 

那是整数除法。

要获得非整数结果,请改用double

您可以将其更改为14 * 100/20 – 然后它将提供您想要的。

即改变操作顺序(14/20为0)

您的结果被转换为int ,因此您正在失去精度。

尝试

 double exp1 = 14/20.0*100;