为什么在返回10时返回0?

时间:2019-03-14 13:45:43

标签: java math

System.out.println((double)(20/200)*100);

我本来以为是一个四舍五入的问题,但是当它是一个双重问题时,这个问题仍然存在。

2 个答案:

答案 0 :(得分:2)

这个问题基本上是重复的,但是由于您似乎处在正确的轨道上,因此您可以做一些微小的更改来完成这项工作:

System.out.println((20.0d/200)*100);

也就是说,使比率在分子或分母中包含至少一个double。此后,您将得到一个double的商,并且乘以整数将不会改变该精度。

答案 1 :(得分:2)

由于20/200是整数除法,因此它将被截断为0,并且整个表达式将返回0。

您应该更改为浮点除法,并且这样做足以将一个操作数转换为浮点类型(例如:20 / 200.0)。