«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сохранить тягущие нули, когда маршалинг плавает в Go Json?

Как сохранить тягущие нули, когда маршалинг плавает в Go Json?

Опубликовано в 2025-03-25
Просматривать:506

How to Preserve Trailing Zeros When Marshaling Floats in Go JSON?

сохранить следы за переносными нулями в json, загрязненных номерами с плавающими точками

в go, json.marshal () функция часто лишивает следы за следами с плавающими точками во время Marshalling. Это может привести к потере точности в определенных сценариях.

задача:

, когда значение программы Marshalling A с помощью ноль (например, 40.0), json.marshal () без Zero (например, 40.0). Такое поведение может быть проблематичным, если внешние программы ожидают числа с плавающей точкой с помощью следующих нулей. Вот пример:

]

type beetzero float64 func (f heatezero) marshaljson () ([] byte, error) { if float64 (f) == float64 (int (f)) { return [] byte (strconv.formatfloat (float64 (f), 'f', 1, 32)), ноль } return [] byte (strconv.formatfloat (float64 (f), 'f', -1, 32)), ноль } в этом пользовательском типе метод marshaljson () преобразует поплавок в строку с одним десятичным местом (если это целое число) или сохраняет все десятичные места (если это не целое число). Ценность Keepzero Единица строка } func main () { Данные, err: = json.marshal (pt {value: 40.0, Unit: "some_string"}) fmt.println (String (data), err) }

Этот код выводит {"value": 40.0, "Unit": "some_string"} & lt; nil & gt;, сохранение ноль с прицелом в выходе JSON.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3