也许这是一个更普遍的MySQL或PHP问题,源于我在这些领域缺乏知识,但是......
所以我在Laravel 5.4上有一个应用程序,数据库是MySQL 5.7.17
我在talbe中有一个列,通过迁移创建:
$table->float('operator_price', 9, 2)->nullable()->change();
(根据Laravel docs,这应该意味着该列的类型为'FLOAT',总数为9位,小数点后为2)
当用户在表单字段中输入1000.25并保存时 - 它保存为“1000.25”,
但如果用户输入10000.25 - 它会保存为“10000.2”。
如果数字超过9999,它会削减最后一位数。
可能是什么原因以及如何解决?
谢谢。
更新:我已经完成了巡演中的显示栏;
并显示列'operator_price'的类型为'float':
答案 0 :(得分:3)
实际上,float / double不如十进制精确。对于货币数据,建议使用小数类型,因此您应该使用:
$table->decimal(10, 2); // instead of float
阅读this了解一些详细信息和float manual from MySql。
答案 1 :(得分:0)