【问题标题】:Converting String to Float is not giving exact value in iOS将字符串转换为浮点数在 iOS 中没有给出确切的值
【发布时间】:2015-08-04 10:45:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios objective-c nsstring cgfloat


    【解决方案1】:

    它被称为“浮点错误”。计算机表示十进制数字的方式导致它们并非始终 100% 准确:

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

    【讨论】:

    • 是的,这是有道理的。谢谢。
    【解决方案2】:

    试试这个

    float sampleFloatValue = (float) sampleFloatString;
    

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-19
        相关资源
        最近更新 更多