首頁 > 後端開發 > Golang > 在 Go 中編組 JSON 時如何保持浮點精度?

在 Go 中編組 JSON 時如何保持浮點精度?

Susan Sarandon
發布: 2024-11-29 19:20:12
原創
978 人瀏覽過

How Can I Preserve Floating-Point Precision When Marshaling JSON in Go?

在JSON 編組中保留浮點精度

在Go 中, json.Marshal() 函數通常會從浮點數中刪除隨尾隨尾隨零在JSON 序列化期間。如果使用應用程式需要原始值的完整精度,這可能會出現問題。

要解決此問題,請考慮定義封裝浮點值的自訂資料類型。以下是範例:

在此實作中:

  • PreservedFloat 類型用作標準 float64 的包裝器。
  • MarshalJSON 方法會覆寫預設值JSON 序列化行為。
  • 如果值具有整數表示形式(沒有小數部分),它的格式設定為一位小數,以保留尾隨零。
  • 否則,該值將在不指定精度的情況下進行格式化,從而使其保持完整的準確性。

透過使用 PreservedFloat ,您可以控制浮點值的 JSON 表示形式,確保它們即使在編組之後也能保持精度。

以上是在 Go 中編組 JSON 時如何保持浮點精度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板