一尘不染

双精度值返回0

java

这是一个例子:

Double d = (1/3);
System.out.println(d);

这将返回0,而不是应有的0.33333…。

有人知道吗?


阅读 252

收藏
2020-09-08

共1个答案

一尘不染

这是因为13会被视为integers您没有另外指定时的处理方式,因此先1/3评估,integer 0然后将转换为double``0。要解决此问题,请尝试(1.0/3),或者1D/3明确声明您正在处理double值。

2020-09-08