私はこれに2日間取り組んできました。スタックオーバーフローを参照する時間です。
小数点とグループ区切り記号を選択できる 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 になります。
私が欲しいものではありません!