gpt4 book ai didi

objective-c - 使用 NSNumberFormatter numberFromString 的精度错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:51:57 24 4
gpt4 key购买 nike

为什么以下代码生成“numberFromString = 9.390000000000001”而不是“numberFromString = 9.39”?

NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numFormatter setPositiveFormat:@"$##0.00"];
[numFormatter setNegativeFormat:@"-$##0.00"];
NSNumber *nTCA = [numFormatter numberFromString:@"$9.39"];

NSLog(@"numberFromString = %@", nTCA);

我在 OS X 10.6 和 iOS 4.3.3 上得到了上述结果。

纠正此错误的最佳方法是什么?

谢谢

最佳答案

我怀疑您因使用浮点精度而遇到错误。解决此问题的方法是使用 NSDecimalNumber 而不是 NSNumber。关于这个有一篇很棒的帖子 here .

NSDecimalNumber 有一个 + decimalNumberWithString:方法。这足以满足您的目的吗?

关于objective-c - 使用 NSNumberFormatter numberFromString 的精度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416890/

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