0
NSNumberFormatterを使用して通貨をフォーマットしていますが、浮動小数点を使用するとフォーマッタが動作しません。しかし、私はダブルを使用すると動作します。私は二重で働く必要がないので、浮動小数点で作業する必要があります。NSNumberFormatterが浮動小数点のために機能しない通貨をフォーマットする
float t1 = 999999.99;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setAllowsFloats:YES];
[formatter setMaximumFractionDigits:2];
[formatter setAlwaysShowsDecimalSeparator:YES];
[formatter setGeneratesDecimalNumbers:YES];
NSString *formattedOutput = [formatter stringFromNumber:[NSNumber numberWithFloat:t1]];
NSLog(@"Output as currency: %@", formattedOutput);
この出力 - 通貨としての出力:この上のあなたの助けのための$ 1,000,000.00 としてではなく、$ 9,99,999.99
事前に感謝します。
*「私はそれを動作させる必要があります私は二重で働く必要はないので浮動小数点数を使用しています」*結果は、特に浮動小数点を通貨に使用することはお勧めできません。 'double'と' NSDecimalNumber'を使う必要があります。 –
私はどちらを使うべきなのか分かります... NSString * convertedAmount = [フォーマッタstringFromNumber:[NSNumber numberWithDouble:finalAmount]]; OR NSString * convertedAmount = [フォーマッタstringFromNumber:[NSDecimalNumber decimalNumberWithDecimal:[[NSNumber numberWithDouble:finalAmount] decimalValue]]]; – inforeqd
[this stackoverflow question](http://stackoverflow.com/questions/453691/how-use-nsdecimalnumber)によると、 'NSDecimalNumber'を初期化するために' [NSNumber numberWith ...] 'の方法を使うべきではありません。 –