如果我使用以下代碼:不正確的結果值
- (NSString*)formatToCurrency:(float)inFloat {
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setMaximumFractionDigits:2];
[currencyFormatter setLocale:[NSLocale currentLocale]];
NSNumber *x = [NSNumber numberWithFloat:inFloat];
return [NSString stringWithFormat:@" %@", [currencyFormatter stringFromNumber:x]];
}
然後調用代碼時傳遞203500,收到輸出:$ 203,500.02。
我很想聽聽關於正在發生的事情的一些想法。
感謝,
馬特
編輯:XCode中被報告203500當我使用調試器觀看它,但是當我轉換的浮到一個NSString,它也將顯示203500.018。這意味着問題出現在浮點數中,而不是在NSNumberFormatter中。
我不能再現這個結果,我得到'203,500.00'。 – dasblinkenlight
舉一個@vikingosegundo的例子..參見http://stackoverflow.com/questions/856019/localize-currency-for-iphone –
再試一次,只是將所有出現的'float'改爲'double'。 –