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