strtod使用过程中遇到的问题

使用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