Laravel Eloquent截断数据类型double

时间:2015-10-13 03:14:22

标签: php laravel eloquent

Laravel截断double类型的值。

值3.539363636363637 显示为3.5393636363636

我是这样做的:

$e=Enrollment::find(173);
dd($e->value);
// show 3.5393636363636

在phpmyadmin中,值是正确的3.539363636363637

2 个答案:

答案 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更改为十进制,我记得有人遇到双重类型的问题,并且在某些时候进行舍入,因此可能值得一试。