这是一个例子:
Double d = (1/3); System.out.println(d);
这将返回0,而不是应有的0.33333…。
有人知道吗?
这是因为1和3会被视为integers您没有另外指定时的处理方式,因此先1/3评估,integer 0然后将转换为double``0。要解决此问题,请尝试(1.0/3),或者1D/3明确声明您正在处理double值。
1
3
integers
1/3
integer
0
double``0
(1.0/3)
1D/3