首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为浮动在目标C中,而不舍入它。

将字符串转换为浮动在目标C中,而不舍入它。
EN

Stack Overflow用户
提问于 2013-11-29 09:44:12
回答 7查看 10.8K关注 0票数 5

如何在不舍入的情况下将字符串转换成浮动在目标C中。

我试图转换一个字符串8.56021285234;

代码语言:javascript
复制
float result=[string floatValue];

给出8.560213,四舍五入。

我怎么才能避免这种情况?我怎么才能得到确切的价值?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-11-29 09:53:08

问题是你用的是浮子。浮子通常只能容纳7位数的最大值.一双可以容纳更多的数字。浮点数是32位,而双位是64位,因此给它“双”的精度。一个简单的解决你的问题的方法是:

double result = [string doubleValue];

在日志记录时,请确保使用NSLog(@"%.12f",result);将整个双倍显示为%f,默认为6小数点精度。

票数 4
EN

Stack Overflow用户

发布于 2013-11-29 09:46:27

你不能在一个浮动中放置超过7位数的精度。您需要一个精度更高的类型,比如double,请参见以下内容:

Difference between float and double

票数 4
EN

Stack Overflow用户

发布于 2013-11-29 09:48:35

尝试双倍而不是浮动:

代码语言:javascript
复制
NSString *val = @"8.56021285234";
double num = [val doubleValue];
NSLog(@"Number ==> %f",num);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20282651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档