如何将此数字转换为浮点数?它是35.77091272818393,类型为NSString。问题是,如果我使用
[str doubValue]
它返回35.770912。
我想转换此字符串
NSString *tt =[NSString stringWithFormat:@"%.14f", 35.77091272818393 ];
使用
浮动var=[tt floatValue];
但它没有足够的精度 - 它只返回35.7709127而不是所有数字。
答案 0 :(得分:6)
您的问题是您看到的值35.770912
是舍入的双精度浮点值。如果您想要更多小数点,可以使用以下内容:
[NSString stringWithFormat:@"%.14", @"35.77091272818393"];
这将打印出14个小数点的值,您将看到浮点值中的精度没有丢失。
您在问题的第二部分遇到问题,因为您正在访问字符串的floatValue
属性而不是doubleValue
属性。您引用的数字需要比float提供的更精确。必须以双精度浮点类型存储数字。这样的事情可以解决你的问题:
NSString *tt = [NSString stringWithFormat:@"%.14f", 35.77091272818393];
double var = [tt doubleValue];