例如,我有這行代碼:添加到PHP中的浮點整數輪浮子1位小數
echo 10359023529 + 0.2137582935;
爲什麼這回:
10359023529.2
而不是:
10359023529.2137582935
例如,我有這行代碼:添加到PHP中的浮點整數輪浮子1位小數
echo 10359023529 + 0.2137582935;
爲什麼這回:
10359023529.2
而不是:
10359023529.2137582935
用途:bcadd()
echo bcadd(10359023529, 0.2137582935, 10);
這就是浮點值的限制。浮點值作爲係數和指數存儲。你會有很多的精度與小數字,低精度與高數字。這裏有比你想要更多的細節:http://en.wikipedia.org/wiki/IEEE_754-2008
底線:高值將是非常不精確的。嘗試使用一個小的值範圍。
這裏有更多關於特別是在關於浮點精度PHP:http://php.net/manual/en/language.types.float.php
如果你真的需要高精度,高數,看BC數學(http://www.php.net/manual/en/ref.bc.php)和GMP(http://www.php.net/manual/en/ref.gmp.php)。
php.ini
中有一個不太明確的選項,它定義了打印浮點數時要顯示的有效數字的個數。在我的情況下,它看起來如下
; The number of significant digits displayed in floating point numbers.
; http://php.net/precision
precision = 14
當然,這僅涉及格式,而不是根本的事實,即浮點數往往不太準確。根據IEEE 754 double的精度是15.95個十進制數字。
有一些說明多少位數字打印一個或多個php.ini設置。我不確定哪些。 – erisco 2010-10-19 01:21:03