簡體   English   中英

使用PHP和mysqli從FLOAT()列中選擇浮點數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM