现做如下优化:要求保留最多两位小数,且四舍不入,若第二位小数为0则去掉,若两位小数都为0则只保留整数部分
-(void)test{
/*
string 类型转float后,小数点后面会多出几位数,这样我进行,大小比较时就出问题,
比如 string = @"10.01"
转成 float后, 有的会变成10.01001
有时好像会变成,10.009999
---转成双精度浮点型double可解决:
*/
//float num = 99.001;
double num = [@"99.105900" doubleValue]; //用双精度浮点型double解决
NSLog(@"doubleValue---%lf",num);
NSNumber *number = @(num);
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.roundingMode = NSNumberFormatterRoundFloor;
formatter.maximumFractionDigits = 2; //保留最多两位小数(99.00->99;99.01->99.01;99.10->99.1)
NSLog(@"字符串最多保留两位小数且四舍不入--%@", [formatter stringFromNumber:number]); // 99.99
NSLog(@"字符串保留两位小数且四舍五入--%.2lf", num); // --100.00
}