當我撥打Math.ceil(5.2)
時,退貨是double
6.0
。我的自然傾向是認爲Math.ceil(double a)
將返回long
。從文檔:爲什麼Math.ceil返回一個double?
ceil(double a)
返回最小的(最接近負無窮大)
double
值 不是小於該參數,並等於一個數學 整數。
但爲什麼返回double
而非long
時,結果是整數?我認爲理解它背後的原因可能會幫助我更好地理解Java。這也可能幫助我弄清楚,如果我將自己陷入困境,投擲到long
,例如,是
long b = (long)Math.ceil(a);
總是什麼,我認爲它應該是什麼?我擔心可能會出現一些有問題的邊界案例。
查看http://stackoverflow.com/questions/3412449/why-does-math-round-return-a-long-but-math-floor-return-a-double – starblue