当它返回10时,为什么返回0? [重复]

问题描述 投票:-5回答:2

这个问题在这里已有答案:

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

我认为这最初是一个四舍五入的问题,但问题仍然存在,当它是一个双倍的时候。

java math
2个回答
2
投票

这个问题基本上是重复的,但是因为你似乎走在了正确的轨道上,所以你可以做一些微小的改变来完成这项工作:

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

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


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.