Java数学逻辑错误

pro*_*doc 0 java math logic

我的项目中有以下代码:

  int percent = 2;
  int count = 10;
  int percentagefill = (percent/10)*count; 
  System.out.println(percentagefill);
Run Code Online (Sandbox Code Playgroud)

基本上发生了什么,我正在设置两个变量,百分比和计数.然后我计算填充百分比.由于一些奇怪的原因,填充百分比导致0,在这种情况下它应该是2.任何想法为什么?提前致谢.

zw3*_*324 6

int除以int仍将导致int.在这种情况下:

(percent/10)*count
= (2/10)*10
= (0) * 10 <-- 0.2 is rounded down to 0
= 0
Run Code Online (Sandbox Code Playgroud)

您可以阅读此问题以供参考.另外,这里是Java规范,其中整数除法向0舍入.至于修复,只要浮点精度不成问题,只需使用doublePaulP.RO说.