gpt4 book ai didi

json - 将货币值从 JSON 转换为 NSDecimalNumber

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:27 24 4
gpt4 key购买 nike

我从 API 获得以下 JSON 响应。

{
"status": "success",
"data": [
{
"actual_price": 30,
"offered_deal_price": 16,
"pending_balance": 12.8
}
]
}

所有这些值都是价格。这意味着它们可以是整数值或 float 值。

read您应该使用 NSDecimalNumber 类型作为货币值。我在转换这些 JSON 值时遇到问题。

这样做,

json["pending_balance"] as! NSDecimalNumber

因以下错误而失败。

无法将类型“__NSCFNumber”(0x10423ccf0)的值转换为“NSDecimalNumber”(0x1046cf1f0)

尝试将其转换为 NSDecimal 导致了这个

无法将类型“__NSCFNumber”(0x7f9102f79f68)的值转换为“C.NSDecimal”(0x10f23d6e0)

不过,我可以将它毫无问题地转换为 FloatDouble 等 Swift 类型。

有人知道 NSDecimalNumber 有什么问题吗?或者继续使用 FloatDouble 是否安全?如果是,哪一个最适合货币值(value)?

谢谢。

最佳答案

该错误表明您正在尝试转换为错误的类型。该值从 JSON 反序列化为 NSNumber,它无缝桥接到 Double 原生 swift 类型。

与其进行转换,不如尝试转换:

NSDecimalNumber(decimal: (json["pending_balance"] as! NSNumber).decimalValue)

NSDecimalNumber(double: json["pending_balance"] as! Double)

但可能还有其他方法可以进行转换。

关于json - 将货币值从 JSON 转换为 NSDecimalNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com