良い一日。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 にキャストします。しかし、なぜ?
テーブルの列のタイプを変更するDOUBLE(9,2)
と、すべてがうまくいき、$price
値は正確になり1.01
ます。
列の型として (丸め関数なしで)変数1.01
の値を取得する方法はありますか?$price
FLOAT(9,2)
ありがとうございました。