Так прямо сейчас я следующий код:Формат NSDecimalNumber в валюте код страны без потери точности
- (NSString*)convertToLocalCurrencyFormat:(NSDecimalNumber*)result {
NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.currencyCode = self.comparisonCurrency;
formatter.usesSignificantDigits = YES;
return [formatter stringFromNumber:result];
}
Когда я прохожу в NSDecimalNumber*
, содержащей 678071967196719797153475347466.94627863
, он получает отформатирован ¥678,072,000,000,000,000,000,000,000,000
(с currencyCode
установлен на JPY
). Если я не буду оставлять строку formatter.usesSignificantDigits = YES
, она будет отформатирована до ¥678,071,967,196,719,797,153,475,347,467
, ближе, но все равно отбрасывая десятичные и следующие значения.
Однако, когда я прохожу в 6780.0416000000012517376
, он отформатирован правильно к ¥6,780.04
со значительной цифрой линии. Он отформатирован до ¥6,780
без строки значимых цифр.
Я знаю, что NSNumberFormatter может принимать любой NSNumber в качестве параметра, но может иметь дело только со значениями, точными как удваивает, оставив NSDecimalNumber без ошибок и неправильных результатов.
Как я могу отформатировать NSDecimalNumbers с кодами валют без потери точности?
Благодаря
, который работал как шарм, спасибо! –