[英]Selecting float number from FLOAT() column with PHP and mysqli
美好的一天。 我在使用mysqli
類的綁定變量從MySQL數據庫中選擇浮點數時遇到問題。
price
列的類型為FLOAT(9,2)
,其值為1.01
簡化的代碼段:
$stmt = $dbh->prepare('SELECT price FROM goods WHERE id=5');
$stmt->execute();
$stmt->bind_result(&$price);
$stmt->fetch();
echo $price;
// 1.0099999904633
據我了解, mysqli
自動將其轉換為兩倍。 但為什么?
當我將表中的列類型更改為DOUBLE(9,2)
一切都會順利,並且$price
值恰好是1.01
。
有什么方法可以在具有FLOAT(9,2)
作為列類型的$price
變量中獲取1.01
值(沒有舍入函數)?
謝謝。
如上所述:
1.01不能精確地表示為浮點數。 如您所見,最接近的可能是1.0099999 ....如果在數據庫中存儲貨幣值,請不要使用浮點數。 使用DECIMAL類型或int並將美元/美分值轉換為美分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.