gpt4 book ai didi

ios - 按国家代码将 NSDecimalNumber 格式化为货币而不丢失精度

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

所以现在我有以下代码:

- (NSString*)convertToLocalCurrencyFormat:(NSDecimalNumber*)result {
NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.currencyCode = self.comparisonCurrency;
formatter.usesSignificantDigits = YES;
return [formatter stringFromNumber:result];
}

当我传入 NSDecimalNumber* 时包含 678071967196719797153475347466.94627863 , 它被格式化为 ¥678,072,000,000,000,000,000,000,000,000 (将 currencyCode 设置为 JPY )。如果我遗漏了 formatter.usesSignificantDigits = YES行,然后它被格式化为 ¥678,071,967,196,719,797,153,475,347,467 , 更接近,但仍然删除小数点和后续值。

但是,当我传入 6780.0416000000012517376 时,它的格式正确¥6,780.04与有效数字线。它被格式化为 ¥6,780没有有效数字线。

我知道 NSNumberFormatter 可以接受任何 NSNumber 作为参数,但只能处理精确到 double 的值,而 NSDecimalNumber 没有错误和不正确的结果。

如何在不损失精度的情况下使用货币代码格式化 NSDecimalNumbers?

谢谢

最佳答案

尝试设置最小小数位数:

formatter.minimumFractionDigits = 2;

HTH

关于ios - 按国家代码将 NSDecimalNumber 格式化为货币而不丢失精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876181/

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