Двойное значение Laravel Eloquent в базе данных возвращается округленным

У меня есть следующее значение хранится в базе данных MySQL 23456789123,45678 и когда я получаю это значение с помощью магической переменной, я получаю 23456789123,457 как ценность.

я пытался $cast переменная в модели:

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

но это не помогло. Большое спасибо за любую помощь в этом отношении.

2

Решение

Проблема не в Laravel, а в PHP. В PHP документация Вы можете видеть, что точность по умолчанию 14, который вы в настоящее время превышаете.

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

Количество значащих цифр, отображаемых в числах с плавающей запятой.
-1 означает, что будет использован улучшенный алгоритм округления таких чисел.

Попробуйте следующее и посмотрите, решит ли это проблему:

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

Вы можете видеть, что кто-то еще ответил на аналогичный вопрос Вот.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector