我嘗試將float值轉換爲字符串並使用NSNumberFormatter。我做了一個舍入函數,並使用格式化程序進行字符串表示。格式化程序只應該執行區域設置和小數點符號。我最終的結果是錯誤的。帶有2個小數點的NSNumberFormatter會導致奇怪的結果
NSNumberFormatter *_numberFormatter = [[NSNumberFormatter alloc] init];
[_numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[_numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]];
[_numberFormatter setMaximumFractionDigits:2];
[_numberFormatter setRoundingMode: NSNumberFormatterRoundDown];
NSString* sumString = [_numberFormatter stringFromNumber:[NSNumber numberWithFloat:14.2f]];
是'14,19'。我不明白爲什麼當小數點在這裏只是1時,該值被舍入。舍入模式在這裏不應該做任何事情,或者我錯了。我可以使用'NSNumberFormatterRoundUp',但在某些情況下,結果可能是'14,21'?
這是一個快速小提琴,它可以幫助你理解:https://coderpad.io/EEWPRCRD –