网上很多代码的10050 会返成1.00 ,其实应该是1。
之前我也是直接复制的网上的代码,结果测试反馈了这个问题。
这段代码修复了这个问题
// 显示2位内有效位小数
NSString *formatFloat(float f)
{
if (fmodf(f, 1)==0) {//余数无小数
return [NSString stringWithFormat:@"%.0f",f];
}else if (fmodf(f*10, 1)==0) {// f*10的情况下 余数为0。返回一位小数
return [NSString stringWithFormat:@"%.1f",f];
}else if (fmodf(f*100, 1)==0) {// f*100的情况下 余数为0。返回两位小数
return [NSString stringWithFormat:@"%.2f",f];
}else {
NSString *str = [NSString stringWithFormat:@"%.2f",f];
if ([[str substringWithRange:NSMakeRange(str.length - 1, 1)] isEqualToString:@"0"]) {
str = [str substringWithRange:NSMakeRange(0, str.length - 1)];
if ([[str substringWithRange:NSMakeRange(str.length - 1, 1)] isEqualToString:@"0"]) {
str = [str substringWithRange:NSMakeRange(0, str.length - 2)];
}
}
return str;
}
}
网友评论