我有体重值,它们可以像75公斤和75.5公斤。
我希望这个值有两种款式:75kg,75.5kg,但不是75.0kg。我该怎么办?
我有这个解决方案,但我不喜欢它
//show difference in 75 and 75.5 values style
NSString *floatWeight = [NSString stringWithFormat:@"%.1f",weightAtThePoint.floatValue];
NSString *intWeight = [NSString stringWithFormat:@"%.0f.0",weightAtThePoint.floatValue];
NSString *resultWeight;
if ([floatWeight isEqualToString:intWeight]) {
resultWeight = [NSString stringWithFormat:@"%.0f",weightAtThePoint.floatValue];
} else {
resultWeight = floatWeight;
}
答案 0 :(得分:0)
如果您不喜欢您的解决方案,请查看我的解决方案
float flotvalue = weightAtThePoint.floatValue;
int reminder = flotvalue / 1.0;
if (reminder==flotvalue) {
NSLog(@"%f",flotvalue); //75KG Solution
}
else {
//75.xx solution
}
享受编码
答案 1 :(得分:0)
最好的解决方案是使用数字格式化程序:
static NSNumberFormatter * numberformatter = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
numberformatter = [[NSNumberFormatter alloc] init];
[numberformatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberformatter setMaximumFractionDigits:1];
[numberformatter setMinimumFractionDigits:0];
[numberformatter setLocale:[NSLocale currentLocale]];
});
由于数字格式化程序的创建需要一些资源,因此如果您创建单个实例则更好 当您需要打印字符串时,请调用:
NSString * formattedString = [numberformatter stringFromNumber: weightAtThePoint];<br>
NSNumberFomatter
只打印十进制数,如果它与0不同,它还可以帮助您使用设备上的当前区域设置选择正确的小数分隔符。