【问题标题】:How to keep float value before rounding in Objective-C?如何在 Objective-C 中舍入之前保持浮点值?
【发布时间】:2013-02-04 21:13:44
【问题描述】:

我有一些 NSString 等于 @"1234567.89"。我必须从这个字符串中生成floatValue。当我调用[myString floatValue] 时,这个float 等于1234567.875000。在此之前如何保持?我希望 floatValue 等于 1234567.89000

感谢您的帮助。

【问题讨论】:

    标签: ios cocoa-touch floating-point nsstring rounding


    【解决方案1】:

    问题在于,浮点数不能以您正在寻找的精度表示那么大的数字。尝试使用双精度,并使用[myString doubleValue] 检索它。下面的小示例程序演示了这一点:

    #import <Foundation/Foundation.h>
    int main(int argc, char *argv[]) {
        @autoreleasepool {
            NSString *myString = @"1234567.89";
            float floatVal = [myString floatValue];
            double doubleVal = [myString doubleValue];
            NSLog(@"String: %@ float: %f double: %f", myString, floatVal, doubleVal);
        }
    }
    

    字符串:1234567.89 浮点数:1234567.875000 双数:1234567.890000

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多