Laravel截断double类型的值。
值3.539363636363637 显示为3.5393636363636
我是这样做的:
$e=Enrollment::find(173);
dd($e->value);
// show 3.5393636363636
在phpmyadmin中,值是正确的3.539363636363637
答案 0 :(得分:3)
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)
答案 1 :(得分:0)
尝试从double更改为十进制,我记得有人遇到双重类型的问题,并且在某些时候进行舍入,因此可能值得一试。