将 String 转换为 Float 未在 iOS 中给出准确值

Converting String to Float is not giving exact value in iOS

我在 Objective-C 中写了一个示例 将字符串转换为浮点数 :

NSString *sampleFloatString = @"1.3";
float sampleFloatValue = [sampleFloatString floatValue];

但是当我显示sampleFloatValue时,它显示'1.29999995'。我知道它等于 1.3,但为什么它不完全是“1.3”?为什么我们需要明确格式化它?还有其他方法可以进行这种转换吗?

试试这个

float sampleFloatValue = (float) sampleFloatString;

希望对您有所帮助。

它叫 "Floating point error"。计算机表示十进制数的方式导致它们并非始终 100% 准确:

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

如果你只是想在某个地方显示这些值而不是你可以做这些并且它显示 1.3 精确..

NSString *sampleFloatString = @"1.3";
float sampleFloatValue = [sampleFloatString floatValue];
NSLog(@"%.1f",sampleFloatValue);