alglyzin / json
Convert all float values to string when decoding JSON string
1.0.1
2020-11-30 07:04 UTC
Requires
- php: >=5.6.0
- ext-json: >=1.2.0
README
Когда вы имеете дело с финансами, очень важно не потерять точность при декодировании json строки с помощью json_decode()
. Единственное обходное решение, - это использовать preg_replace
для добавления кавычек в исходную строку JSON. Данный метод Json::float_safe($string)
позволяет это сделать.
- Не изменяет структуру самого JSON (пробелы, переносы...)
- Обрамляет кавычками экспоненциальный формат числа
- Работает достаточно быстро
Установка из composer:
composer require alglyzin/json
Пример использования:
<?php use alglyzin\Json\Json; $json = ' { "a": 0.00000001e23, "b": 0.00000001, "c": 10000000000.0e+45, "d": 0.00000001e-3, "e": 10.0E4, "f": 1000000000.0E-34, "g": 0.000000000000001, "h": 100000 }'; $json = Json::float_safe($json); echo $json; // echo $json: // { // "a": "0.00000001e23", // "b": "0.00000001", // "c": "10000000000.0e+45", // "d": "0.00000001e-3", // "e": "10.0E4", // "f": "1000000000.0E-34", // "g": "0.000000000000001", // "h": 100000 // }