JAVA:我没有得到我想要的小数点数

时间:2016-07-09 16:27:35

标签: java android

我有一个代码,其中变量" sum"是一个整数。我试图找到平均值,这样

int sum = 1;
float avg = 0;

//later on in the code
avg = (float)sum/37;

根据Android Studio调试器,avg中存储的值为0.0,而不是所需的0.02 ...我想要更多的小数点,但我的答案是四舍五入到小数点。我用数据类型" double"尝试了上面的代码。我得到了同样的答案。有人有任何提示吗?

2 个答案:

答案 0 :(得分:1)

尝试:

avg = sum/37f;

您的问题是整数/整数=整数 在你的情况下,在完成整数计算时会发生转换,这是迟到的。

答案 1 :(得分:1)

您的问题是您的代码的运算符优先级已解析为:

avg = (float)(sum/37);

这意味着,在投射到int / int之前,您仍在进行0数学运算,结果为float

有两种方法可以解决它:

avg = ((float)sum)/37; // cast sum to float before division
avg = sum/37f; // change to a float literal so sum is coerced to float for you