在我的 iPhone 应用程序中,用户可以在首选项中更改单位(公里或英里)。
[[NSUserDefaults standardUserDefaults] setObject:@"km" forKey:@"distanceUnit"];
或者
[[NSUserDefaults standardUserDefaults] setObject:@"mile" forKey:@"distanceUnit"];
我在核心数据中仅以公里为单位保存距离。我与int一起工作。所以每次我得到距离时,我都会执行以下操作:
if ([unit isEqualToString:@"km"]) {
} else {
intTotalKM = intTotalKM * 0.621371192;
}
在节省距离时,我执行以下操作:
if ([unit isEqualToString:@"km"]) {
} else {
intTotalKM = intTotalKM / 0.621371192;
}
例如,在不改变距离的情况下,当我保存并获取它时,我会损失 1 或 2 公里/英里。
由于0.621371192和我只使用int ,我失去了精度。我不想使用双精度值。您对如何处理这个问题有任何想法吗?
编辑:我想知道是否还有其他更适合我情况的转换方式。
谢谢。