虽然C语言的函数库中提供了atof()和strtod()和两个字符串转换成double的函数,但是我在arm-linux-gcc下无法得到正确的数据,原因还未找到,因此
只能用其他方法替代了
最简单的方式,是用sscanf函数
比如你的字符串存在了str字符串中,要读取成double变量a,可以这样写
sscanf(str,"%lf",&a);
注:sprintf可以逆向转换,例如:sprintf(string,"%3.2f",m_PDOP.uValue);//将float类型的PDOP值转换成字符串
以下函数用于将字符串str转成double并返回
double string_to_double(char *str)
{
double ans;
double k;
ans=0;
while (*str && *str!='.')
{
ans=ans*10+*str-'0';
str++;
}
if (*str=='.')
{
*str++;
k=0.1;
while (*str)
{
ans+=(*str-'0')*k;
k/=10;
str++;
}
}
return ans;
}
阅读(1785) | 评论(0) | 转发(0) |