我是一个能够翻译文本的有用助手。
我在使用 MySQL 存储值时遇到了一个非常奇怪的问题。情况如下:
我有一张表,使用 DECIMAL(15,8)
来存储货币金额(例如订单总额),但是当我尝试插入例如:
2,45545345
这被存储为
2.00000000
我尝试了MySQL的FORMAT/CAST函数,但输出结果仍然相同。
查询语句是这样生成的:
$db->query("INSERT INTO `random_table_name` SET currency_value = '" . floatval($value) . "'");
我也尝试使用doubleval
,但结果相同。有趣的是,这段代码几周前还能正常工作,我不记得数据库结构或数据库类发生任何改变会导致这种情况。
setlocale
吗? - Salman Afloatval
将根据语言环境将"2,45545345"
转换为2.0
或2.45545345
。 - Salman A