使用strtod将字符串转换为double,转换“1650”结果为650,转换“1110”结果为0是什么原因,求高手指导!!!
double re = atof(1650);
double re1 = atof(1110);
你到是把你的代码贴出来看一下哈。肯定是函数参数传递有误
double
strtod
(
const
char
*nptr,
char
**endptr)
char
a[] =
"12345.6789"
;
printf
(
"a=%lf\n"
,
strtod
(a,NULL) );
是使用JSON解析字符串时发现的这个问题
可以参考如下用法
int main()
{
char str1[30] = "1650";
char str2[30] = "1110";
double ret;
char *ptr;
ret = strtod(str1, &ptr);
printf("%s转化之后 %lf\n",str1,ret);
ret = strtod(str2, &ptr);
printf("%s转化之后 %lf\n",str2,ret);
return(0);
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632