Ser*_*min 5 php mysql floating-point laravel
也许这是由于我对这些领域缺乏知识而引起的一个更普遍的MySQL或PHP问题,但是...
所以我在Laravel 5.4上有一个应用程序,数据库是MySQL 5.7.17
我在talbe中有一列,是通过迁移创建的:
$table->float('operator_price', 9, 2)->nullable()->change();
Run Code Online (Sandbox Code Playgroud)
(根据Laravel docs的说法,这应意味着列的类型为“ FLOAT”,总位数为9,小数点后为2)

当用户在表单字段中输入1000.25并保存-它保存为“ 1000.25”时,
但是,如果用户输入10000.25-它会另存为“ 10000.2”。
因此,如果数字超过9999,则会截断最后一位数字。
可能是什么原因,我该如何解决?
谢谢。
更新:我已经从巡回演出中显示了栏目;
它显示列“ operator_price”的类型为“ float”:
实际上,浮点/双精度不如十进制精确。对于货币数据,建议使用十进制类型,因此您应该使用:
$table->decimal(10, 2); // instead of float
Run Code Online (Sandbox Code Playgroud)
阅读本文以获得一些详细信息,并从MySql浮动手册。