Кажется, что вам нужно сохранить точность сериализации до 17, и это разумная и выполнимая точность.
В php .ini есть аргумент конфигурации precision выглядит так:
; The number of significant digits displayed in floating point numbers.
precision = 14
Измените его на то, что хотите, например:
precision = 17
И json_decode должен сохранять нужную вам точность.
Надеюсь, этот ответ поможет.