4

在 Java 中,我们执行此语句以具有 $ 货币格式。

    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 。

4

1 回答 1

12

你可以用 NSString 做同样的事情:

NSString *someString = [NSString stringWithFormat:@"$%.2lf", total];

请注意,格式说明符是“%lf”,而不仅仅是“%f”。

但这仅适用于美元。如果你想让你的代码更本地化,正确的做法是使用数字格式化程序

NSNumber *someNumber = [NSNumber numberWithDouble:total];

NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
[nf setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *someString = [nf stringFromNumber:someNumber];

当然,用欧元符号或类似符号显示以美元计算的值是行不通的,因此您要么希望以用户的货币进行所有计算,要么在显示之前转换为用户的货币. 您可能会发现NSValueTransformer 对此很有帮助。

于 2012-07-11T17:50:18.393 回答