2

我在 MySQL 数据库中存储了以下值23456789123,45678,当我使用魔法变量获取该值时,我得到了23456789123,457其作为一个值。

$cast在模型中尝试过变量:

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

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

4

1 回答 1

4

问题不在于 Laravel,实际上是 PHP 解决了这个问题。在 PHP文档中,您可以看到默认精度为14,您当前正在超出该精度。

Name      |   Default |   Changeable   |
precision |   "14"    |   PHP_INI_ALL  |

以浮点数显示的有效位数。-1 表示将使用对这些数字进行舍入的增强算法。

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

ini_set('precision', 17);
ExampleModel::find($id)->previous_value;

您可以在此处看到其他人回答了类似的问题。

于 2018-05-31T18:47:02.347 回答