atof()返回一个double,当我将它赋值给一个浮动值时,它会产生一个警告(是的,我肯定必须使用浮点数)。
因此,我的问题是:是否有一个返回普通浮点数的atof()-variant可用?或者我必须通过一个演员来解决这个问题,这将是一个遗憾,因为它浪费资源创造一个双,将被立即扔掉。
发布于 2016-12-07 08:43:39
使用strtof,它将返回一个浮点数。
见这里的文档
发布于 2016-12-07 13:57:48
如果平台有一个直接的“字符串到浮动”转换例程,并且编译器正在优化,那么它肯定会通过以下方法调用该转换例程:
char *buf = ...
float y;
if (sscanf(buf, "%f", &y) == 1) Success();如果没有,那么使用
float y = (float)atof(buf);注意,编译器可以对第二个代码进行优化,如果它违反了第二个代码中发生的微妙的双四舍五入,则调用"string“。
https://stackoverflow.com/questions/41012781
复制相似问题