私のiPhoneアプリケーションでは、ユーザーは設定で単位(kmまたはmile)を変更できます。
[[NSUserDefaults standardUserDefaults] setObject:@"km" forKey:@"distanceUnit"];
また
[[NSUserDefaults standardUserDefaults] setObject:@"mile" forKey:@"distanceUnit"];
Core-Dataに距離をkm単位で保存します。私はintで動作します。したがって、距離を取得するたびに、次のことを行います。
if ([unit isEqualToString:@"km"]) {
} else {
intTotalKM = intTotalKM * 0.621371192;
}
そして、距離を節約するとき、私は次のことをします:
if ([unit isEqualToString:@"km"]) {
} else {
intTotalKM = intTotalKM / 0.621371192;
}
たとえば、距離を変えずに保存して取得すると、1〜2km/マイルを失います。
0.621371192と、 intのみを使用しているため、精度が低下します。double値を使用したくありません。この問題に対処する方法について何かアイデアはありますか?
編集:私の状況により適した変換の他の方法があるかどうか疑問に思います。
ありがとう。