首頁 >後端開發 >PHP問題 >php中float和double的差別是什麼

php中float和double的差別是什麼

WBOY
WBOY原創
2022-02-17 15:50:092554瀏覽

在PHP中,float和double沒有差別。浮點型在PHP中也叫浮點數float、雙精度數double或實數real,float、double或real是相同的資料型別,可以用同一種語法定義。

php中float和double的差別是什麼

本教學操作環境:windows10系統、PHP7.1版、DELL G3電腦

php中float和double的差別是什麼

為了區分php中float和double的區別,我採用以下程式碼分別輸出。

$vad = 1.1;
print gettype($vad);
var_dump($vad);

這將輸出:

double
float(1.1)

看著其實不同,實際上在php中,沒有區別。 float,double或real是相同的資料型別。浮點型(也叫浮點數float,雙精度數double 或實數real. 在C級,一切都存儲為雙。

#實際大小仍然是平台相關的。有關詳細信息,請參閱手冊:

http://www.php.net/manual/en/language.types.float.php

浮點數的精確度

浮點數的精確度有限。儘管取決於系統,PHP 通常使用IEEE 754 雙精度格式,則由於取整而導致的最大相對誤差為1.11e-16。非基本數學運算可能會給出更大誤差,並且要考慮到進行複合運算時的誤差傳遞。

此外,以十進制能夠精確表示的有理數如0.1 或0.7,無論有多少尾數都不能被內部所使用的二進制精確表示,因此不能在不丟失一點點精度的情況下轉換為二進制的格式。這就會造成混亂的結果:例如,floor((0.1 0.7)*10) 通常會返回7 而不是預期中的8,因為該結果內部的表示其實是類似7.9999999999999991118…。

所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。如果確實需要更高的精度,應該使用任意精度數學函數或gmp 函數。

推薦學習:《PHP影片教學

以上是php中float和double的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn