分裂问题

时间:2010-06-10 17:54:33

标签: java math

  

可能重复:
  Why does (360 / 24) / 60 = 0 … in Java

这行代码:

System.out.println ("array[j], "+array[j]+", divided by sum, "+sum+", equals: array[j]/sum: "+ array[j]/sum) ;

正在建立这一行文字:

  

array [j],21,除以sum,100,equals:array [j] / sum:0

为什么这样做? (一切都是正确的,因为答案应该是.21)

4 个答案:

答案 0 :(得分:3)

您确定阵列不是整数吗?

如果是,请尝试使用double。

答案 1 :(得分:2)

我假设arayint[]sumint。在这种情况下,Java将执行整数除法,在这种情况下会导致0。

答案 2 :(得分:1)

其他人注意到了原因。要修复,(double) aray[j]/sum

答案 3 :(得分:0)

除以整数将得到一个向下舍入到第一个整数的整数答案。如果你想要一个十进制结果,你必须使它成为21.0 / 100.0。