laravel雄辩的双值存储在数据库中

rbl8hiat  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(418)

我在mysql数据库中存储了以下值 23456789123,45678 当我用魔法变量得到这个值时 23456789123,457 作为一种价值观。
我试过了 $cast 模型中的变量:

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

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

n3h0vuf2

n3h0vuf21#

问题不在于laravel,实际上是php解决了这个问题。在php文档中,您可以看到默认的精度是14,目前您已经超过了14。

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

以浮点数显示的有效位数-1表示将使用增强的算法对这些数字进行舍入。
尝试以下操作,看看是否解决了问题:

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

你可以看到其他人在这里回答了类似的问题。

相关问题