2015-10-30 130 views
1

當我試圖將數字從mysql查詢(字段類型是雙倍沒有格式)與php總結爲一個變量它給我一個不正常的結果。浮動編號不應該是相同的,它應該是

讓我說我從查詢中得到了幾行,第一行0.54和第二行0.2等,最後結果應該是2.433,如果我手動總結所有行。

但是當我回聲示出爲這個可變>> 2.433000000000000273558953267638571560382843017578125

其中來自其餘數目? 以及如何防止它來使用輪或格式化? 還是我錯過了什麼?

編輯: 我試圖改變它爲十進制15,4但它仍然是和以前一樣喜歡這個2.433000000000000273558953267638571560382843017578125和奇怪的事情是正常顯示和計數後更改爲PHP函數的數量。

+0

使用'decimal'而不是'float'。 –

+1

[Perl/mysql浮點不精確]的可能重複(http://stackoverflow.com/questions/24398132/perl-mysql-floating-point-imprecision) –

+0

所以這就是爲什麼我總是得到錯誤的結果。感謝大家。然後我必須將每個雙字段更改爲十進制。我測試後的 – Ephoenixs

回答

1

如果您需要對這些值進行數學計算,您應該考慮在MysQL中使用DECIMAL而不是DOUBLE或FLOAT。

看一看:difference between float and decimal data type

+0

感謝您的信息。我測試後的 – Ephoenixs

+0

是真正的問題是php FOR函數的總結,它給浮動結果不是小數,即使我改變字段類型後。如何強制php將其計爲小數? – Ephoenixs