首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于浮动而不是双倍的atof()

用于浮动而不是双倍的atof()
EN

Stack Overflow用户
提问于 2016-12-07 08:40:32
回答 2查看 9K关注 0票数 8

atof()返回一个double,当我将它赋值给一个浮动值时,它会产生一个警告(是的,我肯定必须使用浮点数)。

因此,我的问题是:是否有一个返回普通浮点数的atof()-variant可用?或者我必须通过一个演员来解决这个问题,这将是一个遗憾,因为它浪费资源创造一个双,将被立即扔掉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-07 08:43:39

使用strtof,它将返回一个浮点数。

见这里的文档

票数 5
EN

Stack Overflow用户

发布于 2016-12-07 13:57:48

如果平台有一个直接的“字符串到浮动”转换例程,并且编译器正在优化,那么它肯定会通过以下方法调用该转换例程:

代码语言:javascript
复制
char *buf = ...
float y; 
if (sscanf(buf, "%f", &y) == 1) Success();

如果没有,那么使用

代码语言:javascript
复制
float y = (float)atof(buf);

注意,编译器可以对第二个代码进行优化,如果它违反了第二个代码中发生的微妙的双四舍五入,则调用"string“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41012781

复制
相关文章

相似问题

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