我正在尝试从长值中正确显示格式正确的货币。我正在使用 NSNumberFormatter,但它似乎切断了我的小数位。
例如,如果我有一个长值 1203(美分),我希望它具有定点格式(如 12.03)。这是我所做的:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.currencyCode = "USD";
formatter.multiplier = [NSNumber numberWithDouble:0.01];
long currencyAmount = 1203;
NSNumber *number = [NSNumber numberWithLongLong:currencyAmount];
[label setText:[formatter stringFromNumber:number]];
我得到这个输出 $12.00 但我想要 $12.03
最佳答案
想到 NSNumberFormatter
中的整数截止错误是疯狂的猜测,但您是否尝试过默认乘数 1 并自己将转换为 float 后的货币金额除以 100?
编辑:对于此解决方法,以下帖子建议使用 NSDecimalNumber
来避免舍入问题。 NSNumberFormatter to format currency not working for floats
关于objective-c - 如何正确显示货币 iPhone/Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389512/