大佬教程收集整理的这篇文章主要介绍了将char *转换为float或double,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这基本上就是我正在做的事情,只是从文件读入char *值.当我打印出temp和ftemp变量时,它们只是垃圾,巨大的负数.
另一个编辑:
我在gcc中运行这个
#include <stdio.h> int main() { char *test = "12.11"; double temp = strtod(test,null); float ftemp = atof(test); printf("price: %f,%f",temp,ftemp); return 0;
}
我的输出是价格:3344336.000000,3344336.000000
编辑:这是我的代码
if(file != NULL) { char curLine [128]; while(fgets(curLine,sizeof curLine,filE) != NULL) { tempVal = strtok(curLine,"|"); pairs[i].name= strdup(tempVal); tempVal = strtok(NULL,"|"); pairs[i].value= strdup(tempVal); ++i; } fclose(filE); } double temp = strtod(pairs[0].value,null); float ftemp = atof(pairs[0].value); printf("price: %d,ftemp);
我的输入文件是非常简单的名称,值对如下:
NAME|VALUE NAME|VALUE NAME|VALUE
价值是美元金额
已解决:谢谢大家,我使用%d而不是%f,并且没有包含正确的标题.
以上是大佬教程为你收集整理的将char *转换为float或double全部内容,希望文章能够帮你解决将char *转换为float或double所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。