繁体   English   中英

使用Objective-C的货币符号标签显示了错误的值

[英]Currency sign label showing the wrong value using Objective-C

如果货币值等于GBP,则货币标签应显示“£”,否则,应显示“€”符号。 但是,无论货币是GBP还是EURO,它都会返回“ $”符号。 为什么?

NSString *currencySign = [overviewModel.currency isEqualToString:@"GBP"] ? @"£" : @"€";
self.productCoreDetailView.priceLabel.text = [NSString stringWithFormat:@"%@%@", currencySign, overviewModel.price];
self.productCoreDetailView.priceVATLabel.text = [NSString stringWithFormat:@"%@%@", currencySign, overviewModel.price_vat];

而不是手动执行此操作,为什么不使用NSNumberFormatter呢?

NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.currencyCode = @"GBP";
NSString *formattedNumber = [formatter stringFromNumber:@23.50];
// formattedNumber = £23.50

或斯威夫特

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencyCode = "EUR"
let formattedNumber = formatter.string(from: 23.50)
// formattedNumber = €23.50

通过使用NSNumberFormatter,您将能够支持任何货币并简化您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM