存储在数据库中的Laravel Eloquent double值返回舍入

时间:2018-05-31 15:04:09

标签: php mysql laravel eloquent double

我在MySQL数据库23456789123,45678中存储了以下值,当我使用魔术变量获取此值时,我将23456789123,457作为值。

我在模型中尝试了$cast变量:

protected $casts = [
  'previous_value' => 'double(16,5)',
]

但这没有帮助。非常感谢在这方面的任何帮助。

1 个答案:

答案 0 :(得分:4)

问题不在于Laravel,实际上是PHP正在对此进行四舍五入。在PHP documentation中,您可以看到默认精度 14 ,您目前正在超越。

c ~ d ~ a
     

浮点数中显示的有效位数。   -1表示将使用用于舍入此类数字的增强算法。

尝试以下操作,看看它是否可以解决问题:

fact :: (Num a, Eq a) => a -> a

您可以看到其他人回答了类似的问题here