算术运算有什么问题

时间:2015-11-25 07:41:31

标签: java

我知道也许是一个愚蠢的问题,但我不明白以下操作有什么问题:

 value = 8.14
 double netvalue = value / (1 + 23 / 100);

结果是:

 netvalue = 8.14

2 个答案:

答案 0 :(得分:14)

分部优先于添加,所以 1 + 23 / 100被评估为1 + (23/100)1 + 023/100为0,因为它是int division,所以结果是int),所以你要划分{{1} } 1。

您可以将value更改为23以实现浮点除法:

23.0

或者你可以简单地除以1.23:

double netvalue = value / (1 + 23.0 / 100);

答案 1 :(得分:2)

让我们理解这个

double netvalue = value / (1 + 23 / 100);

评估的第一件事是23/100 gives 0

1+ 0 = 1

最后double netvalue = 8.14/1; gives 8.14