Laravel截断double类型值。Laravel Eloquent截断数据类型double双精度值
3.539363636363637 被表现为3.5393636363636
值我这样做,所以:
$e=Enrollment::find(173);
dd($e->value);
// show 3.5393636363636
在phpMyAdmin值是正确3.539363636363637
Laravel截断double类型值。Laravel Eloquent截断数据类型double双精度值
3.539363636363637 被表现为3.5393636363636
值我这样做,所以:
$e=Enrollment::find(173);
dd($e->value);
// show 3.5393636363636
在phpMyAdmin值是正确3.539363636363637
Laravel不会截断您的数据; PHP是。 PHP中浮点数的默认精度为14位有效数字。如果您要将精度提高到16位数,您的价值将打印得很好。
PhpMyAdmin显示“正确”的值,因为它把它当作一个字符串;它永远不会将其转换为浮点数。
ini_set('precision', 16);
$e=Enrollment::find(173);
dd($e->value);
// would show 3.539363636363637 (all 16 significant digits)
尝试从双改为采用十进制,我记得有人在某些时候有一些双重类型和四舍五入的问题,所以它可能值得一试。