У меня есть следующее значение хранится в базе данных MySQL 23456789123,45678
и когда я получаю это значение с помощью магической переменной, я получаю 23456789123,457
как ценность.
я пытался $cast
переменная в модели:
protected $casts = [
'previous_value' => 'double(16,5)',
]
но это не помогло. Большое спасибо за любую помощь в этом отношении.
Проблема не в Laravel, а в PHP. В PHP документация Вы можете видеть, что точность по умолчанию 14, который вы в настоящее время превышаете.
Name | Default | Changeable | precision | "14" | PHP_INI_ALL |
Количество значащих цифр, отображаемых в числах с плавающей запятой.
-1 означает, что будет использован улучшенный алгоритм округления таких чисел.
Попробуйте следующее и посмотрите, решит ли это проблему:
ini_set('precision', 17);
ExampleModel::find($id)->previous_value;
Вы можете видеть, что кто-то еще ответил на аналогичный вопрос Вот.
Других решений пока нет …