如何正确地将小数发送到mysql数据库


How to correctly send a decimal to a mysql database?

我正试图让MySQL十进制字段类型正常工作,但我就是搞不明白。我将$_POST['price']字段发送到十进制字段,例如3.45,它总是将其存储为3.00

如果它不存储小数,我会做错什么?

找到了解决方案:PDO::PARAM用于类型decimal?

PDO没有十进制存储类型,看起来像是错过了一些巨大的东西。需要将其存储为字符串而不是数字。

$_POST['price']变量从字符串转换为浮点时,请使用floatval()。这个值是应该存储在数据库中的值。

不过要小心由于可能存在舍入误差,浮点运算在计算价格时不太好。在处理价格时,我通常使用整数运算,然后手动输入小数点。

因此,在您的示例中,我将存储345来表示$3.45