私が行っている非常に大きく正確な数値のフォーマットの簡単なテストとして:
(数値は合成されたNSDecimalNumberです...) number = [[NSDecimalNumber alloc] initWithDecimal:[[NSDecimalNumber numberWithDouble:420000008698643507200000.0F] decimalValue]]; DLog(@ "unformatted:%@"、[number stringValue]);
これは私に: "フォーマットされていない:420000008698643507200000"
しかし、を介してフォーマットしようとするとNSNumberFormatter
、かなりオフになります...切り上げか何か...
numFormatter = [[NSNumberFormatter alloc] init]; [numFormatter setNumberStyle:kCFNumberFormatterDecimalStyle]; [numFormatter setRoundingMode:kCFNumberFormatterRoundDown]; [numFormatter setMaximum:nil]; DLog(@ "formatted:%@"、[numFormatter stringFromNumber:number]);
私に与える:「フォーマットされた:420,000,008,698,644,000,000,000」
見えない秘密のNSNumberFormatter
魔法の性質があるといいのですが、やってみsetUsesSignificantDigits
ましsetMaximumSignificantDigits
たが、うまくいかなかったようです。
誰かアイデアはありますか?本当にありがとう!