我在Objective-C中编写了一个样本将字符串转换为float :
NSString *sampleFloatString = @"1.3";
float sampleFloatValue = [sampleFloatString floatValue];
但是当我显示sampleFloatValue
时,它会显示'1.29999995'。我知道它等于1.3,但为什么它不完全是'1.3'?为什么我们需要明确地格式化它?还有其他方法可以进行此转换吗?
答案 0 :(得分:3)
它被称为"浮点错误"。计算机表示十进制数字的方式导致它们始终不是100%准确:
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
答案 1 :(得分:2)
试试这个
float sampleFloatValue = (float) sampleFloatString;
希望它有所帮助。
答案 2 :(得分:1)
如果你只是想在某个地方展示这些价值而不是你可以做到这些,它会显示1.3精确..
NSString *sampleFloatString = @"1.3";
float sampleFloatValue = [sampleFloatString floatValue];
NSLog(@"%.1f",sampleFloatValue);