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];

フォーマット指定子は、単なる「%f」ではなく「%lf」であることに注意してください。

しかし、それは米ドルに対してのみ機能します。コードをよりローカライズしたい場合は、数値フォーマッタを使用するのが正しい方法です:

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 に答える