小数和 JSONEncoder Swift 的问题

问题描述 投票:0回答:0

我在一个项目中工作,我必须向 API 发送 Pix 操作的货币值。

示例:57.30

起初我用的是 Double,但每个人都说我应该改用 Decimal。

  let formatted = String(format: "%.2f", 57.30)
  let decimalNumber = Decimal(string: formatted)

我用JSONEncoder打印出来,一切正常

let enconder = JSONEncoder()

  do {
      let value = try enconder.encode(number)
      let number = String(data: value, encoding: .utf8)
      value 57.30.  // the value of number
  } catch {
      print ("error")
  }

但是当这个值在我的应用程序之外时,例如在用户将支付pix的银行应用程序系统中,该值为

5.73

为什么会这样?

我尝试了 NumberFormatter()、Float、Double、Decimal

json swift double decimal-point jsonencoder
© www.soinside.com 2019 - 2024. All rights reserved.