美文网首页
字符串转数字会出现的偏差

字符串转数字会出现的偏差

作者: 半碗水的漩涡 | 来源:发表于2018-02-01 14:53 被阅读0次

这几天看到个问题,当使用 floatValue 转化字符串保留两位小数的时候,小数位数或者个位上面数字会出现偏差。

如下:

NSString *str = [NSString stringWithFormat:@"88888380.83"];

NSLog(@"str:%@",str);                     

NSLog(@"strFFFFF:%.2f",[str floatValue]);

打印台如下:

Demo[8834:171241] str:88888380.83

Demo[8834:171241] strFFFFF:88888384.00

当使用双精度doubleValue 转化的时候,情况如下:

NSLog(@"strDDDDD:%.2f",[str doubleValue]);

NSLog(@"strDDDDD:%f",[str doubleValue]);

打印台如下:

Demo[8834:171241] strDDDDD:88888380.83

Demo[8834:171241] strDDDDD:88888380.830000

经过试验发现:当floatValue 转化保留两位小数的时候,小数点前面至多有5位,当小数点前面有6位的时候,转化就会出现偏差

NSString *strTwo = [NSString stringWithFormat:@"88380.83"];

NSLog(@"strTwoFFFFF:%.2f",[strTwo floatValue]);

NSString *strThree = [NSString stringWithFormat:@"888380.83"];

 NSLog(@"strThreeFFFFF:%.2f",[strThree floatValue]);

打印台如下:

Demo[9180:178132] strTwoFFFFF:88380.83

Demo[9180:178132] strThreeFFFFF:888380.81

这就是我试验的结果,试验结果可能不全,欢迎大家指正

相关文章

网友评论

      本文标题:字符串转数字会出现的偏差

      本文链接:https://www.haomeiwen.com/subject/efudzxtx.html