将NSString转换为货币格式
在Java中,我们使用此语句具有$货币格式。将NSString转换为货币格式
double num1 = 3.99 ;
double num2 = 1.00 ;
double total = num1 + num2;
System.out.printf ("Total: $ %.2f", total);
结果是:
总计:$ 4.99
// -------------------------- ------
iOS中现在,我怎么得到同样的格式,如果我有以下声明:
total.text = [NSString stringWithFormat:@"$ %d",([self.coursePriceLabel.text intValue])+([self.courseEPPLabel.text intValue])+10];
注:
如果我使用doubleValue输出始终为0。
你可以做同样的事情的NSString:
NSString *someString = [NSString stringWithFormat:@"$%.2lf", total];
注意,格式说明 “%LF”,而不仅仅是 “%F”。
但这只适用于美元。如果你想使你的代码更本地化,做正确的事情是使用number formatter:
NSNumber *someNumber = [NSNumber numberWithDouble:total];
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
[nf setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *someString = [nf stringFromNumber:someNumber];
当然,它不会做,显示美元计算与欧元符号或东西值像这样,所以你要么要用用户的货币做所有的计算,要么在显示之前转换成用户的货币。您可能会发现NSValueTransformer对此很有帮助。
它与“%.2lf”和doubleValue一起工作。谢谢:) – NamshanNet 2012-07-11 21:26:06
%.2lf将无法正常工作。尝试将总数设置为55.0,并查看使用%.2lf获得的内容 – 2014-05-03 17:49:28
你的'UITextField's是否正确连接(假设Interface Builder)?尝试'NSLog(self.coursePriceLabel.text)'(和其他人)在控制台中查看它们的实际值。 – 2012-07-11 17:42:50
您还应该使用NSDecimalNumber来表示您的金额。 – drewish 2012-07-23 15:02:28