Laravel Eloquent 截断数据类型 double。

3

Laravel 截断 double 类型的值。

数值 3.539363636363637 显示为 3.5393636363636。

我是这样做的:

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

在phpmyadmin中,该值为3.539363636363637。
2个回答

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)

0

尝试将数据类型从double更改为decimal,我记得有人曾经遇到过double类型和四舍五入的问题,所以这个方法值得一试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接