Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294105
  • 博文数量: 59
  • 博客积分: 2021
  • 博客等级: 大尉
  • 技术积分: 491
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-29 09:49
文章分类

全部博文(59)

文章存档

2011年(6)

2010年(11)

2009年(42)

我的朋友

分类: C/C++

2009-12-02 15:13:31

虽然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;
}
阅读(1787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~