这个问题在这里已有答案:
System.out.println((double)(20/200)*100);
我认为这最初是一个四舍五入的问题,但问题仍然存在,当它是一个双倍的时候。
这个问题基本上是重复的,但是因为你似乎走在了正确的轨道上,所以你可以做一些微小的改变来完成这项工作:
System.out.println((20.0d/200)*100);
也就是说,使比率在分子或分母中包含至少一个double
。在那之后,你将得到商的double
,乘以一个整数不会改变那个精度。
因为20/200
是整数除法,因此它将截断为0并且整个表达式将返回0。
您应该更改为浮点除法,并且这样做足以将其中一个操作数转换为浮点类型(例如:qazxsw poi)。