Я работаю над этим уже два дня. Время обратиться к stackoverflow.
У меня есть пользовательская настройка iOS, которая позволяет выбрать десятичный разделитель и разделитель группировки. Он отлично работает, когда разделитель представляет собой десятичную точку, но при установке десятичной запятой все числовые записи автоматически округляются до ближайшего целого числа, и любые вычисления теряют точность.
Схема такая:
//Use formatter to set decimal style for output
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMinimumFractionDigits:1];
[formatter setMaximumFractionDigits:5];
//Set number format from preferences
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *numberFormat = [userDefaults stringForKey:kNumberFormat];
if([numberFormat isEqualToString:@"Decimal Point"])
{
[formatter setDecimalSeparator:@"."];
[formatter setGroupingSeparator:@","];
}
else
{
[formatter setDecimalSeparator:@","];
[formatter setGroupingSeparator:@"."];
}
NSNumber *number = [NSNumber numberWithDouble: result];
NSString* formattedResult = [formatter stringFromNumber:number];
[display_ setText: [NSString stringWithFormat:@"%@", formattedResult]];
[formatter release];
В режиме десятичного разделителя 5,5 + 5,5 = 11,0
Но в режиме разделителя запятых 5.5 сразу усекается до 5.0 на дисплее и 5.5 + 5.5 = 10.
Не то, что я хочу!