0

NSNumber に変換した後の文字列値が 12345.12 のようになっているとしましょう。 12345.1223122 となります。現在使用しているコード

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
    [f setNumberStyle:NSNumberFormatterCurrencyStyle];
    NSNumber * myNumber = [f numberFromString:aString];
    [f release];
4

4 に答える 4

3

通貨タイプの数値を扱っている場合 (通貨スタイル フォーマッタの使用からの推測にすぎません)、おそらく を使用することをお勧めしますNSDecimalNumber。標準の浮動小数点型とは異なり、10 進数は底 10 の指数を使用するため、お金の問題を処理するときに常に正確に期待される精度が得られます。つまり、整数を使用して小数点を底 10 で移動するのと同じです。表現。

于 2012-10-10T04:34:14.910 に答える
1

これを行う:

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setMaximumFractionDigits:2];
NSNumber * myNumber = [f numberFromString:aString];
[f release];
NSLog(@"%@",myNumber);
于 2012-10-10T04:25:33.590 に答える
1

このようにしてみてください...

 NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber * myNumber=[NSNumber numberWithFloat:[[f numberFromString:aString] floatValue]];

お役に立てると思います。

于 2012-10-10T04:47:00.447 に答える