我已经为此工作了两天了。是时候咨询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。
不是我想要的!