2013-11-27 57 views
0

我有一個簡單的除法:PHP劃分結果自動四捨五入數

193分之72

的Excel是給我造成的

0.373056994818653

雖然PHP輪就高達

0.373056994819

我的questi在 - 我如何讓PHP給我確切的數字而不是四捨五入?

+0

什麼版本的PHP您使用?你使用什麼操作系統? 32/64位?我個人在[codepad](http://codepad.org/Z2uT6xEy)上獲得'float(0.37305699481865)' – h2ooooooo

+0

你應該看看這個:http://php.net/manual/en/book.bc.php – Joren

+2

check你的配置'echo ini_get('precision')' –

回答

1

這不是一個「確切」的問題,而是精確性問題。 Wolfram Alpha對於你的答案有更大的精度。

您需要更改precision of your php configuration以適應小數點後需要的單位數。我無法找到PHP提供的最大精度,但我相信這是有限制的。

+0

偉大的東西,你的迴應不僅給我一個答案,而且也是一個永久的解決方案。在php.ini中將精度從12更改爲15後,我現在可以得到與Excel中完全相同的圖形。不過謝謝大家的幫忙! – elemelas

1

確切的數字是一個無限小數。你永遠無法獲得完整的絕對值,因爲那需要無限的記憶,這是我們可悲的無法訪問的。

看看bcdiv,但是這使得很長整數和浮點數

對於所有的實際意圖和目的,如果兩個數值都在1×10 -8 所以,你應該能夠考慮他們平等

你可以做到這一點是這樣的:

if(abs($num1-$num2)<=1e-8){ 
    echo "They are equal"; 
}