gpt4 book ai didi

cocoa - 将 NSValue 转换为 NSDecimalNumber

转载 作者:行者123 更新时间:2023-12-03 17:18:10 25 4
gpt4 key购买 nike

我有一个 plist(在 XCode 中创建),其中包含一个充满“数字”(0.01、1、2、6)的数组,当使用 initWithContentsOfFile 重新构建时,该数组将解包到 NSValues 中。如何将这些 NSValues 转换为 NSDecimalNumbers 以用于相加?它们将被视为货币值,因此只需要 2 位(也许 4 位)小数的精度。

我尝试将 plist 值保存为“String”而不是“Number”,并使用 NSDecimalNumber 的 initWithString 设置该值,但 NSValue 不响应 stringValue。

在 Cocoa 中处理数字似乎特别令人困惑。如此多的框架中的如此多的容器格式...:-(

最佳答案

您应该能够直接将数字作为字符串存储在属性列表中。将 NSString 存储在 plist 中时,不需要对它们进行任何 NSValue 包装。我建议将应用程序中的数字保留为 NSDecimals 或 NSDecimalNumbers 以避免任何浮点错误,使用 initWithString:locale: 从 plist 中读取它们,并使用 descriptionWithLocale: 将它们写入 plist。将小数作为字符串存储和检索可以避免任何浮点转换错误。

关于cocoa - 将 NSValue 转换为 NSDecimalNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1090251/

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