我正在尝试做一些基本的数学运算,但它一直以0
. 我确定它与它有关,int
但我不知道如何解决它。我需要使用整数,但得出这些整数的数学使用小数。我该怎么做?
问问题
1970 次
4 回答
8
那是整数除法。
要获得非整数结果,请改用double
s。
于 2012-04-26T14:48:14.957 回答
3
这对黑莓来说并不特殊,它是标准的 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
于 2012-04-26T14:49:18.833 回答
1
您可以将其更改为 14*100/20 - 然后它会提供您想要的。
即改变操作顺序(14/20为0)
于 2012-04-26T14:49:16.767 回答
-1
您的结果被转换为int
,因此您正在失去精度。
尝试
double exp1 = 14/20.0*100;
于 2012-04-26T14:50:39.787 回答