string转换成double的问题

machaoqun6666 2008-08-22 04:23:33
double CAnalysis::get_value(string ss,string sk,double d)
{
string s;
s=get_value(ss,sk);
double x=0.0,y=0.0;
int point=s.find('.');
for(int i=0;i<point;i++)
x+=(s[i]-'0')*pow(10.0,point-i-1);
for(int i=point+1;i<s.size();i++)
y+=(s[i]-'0')*pow(10.0,point-i);
return x+y;
}
得到的s是1.0
可转换返回的是1
怎么改才能返回1.0?
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fibbery 2008-08-22
  • 打赏
  • 举报
回复
另外,你最后的参数d,如果不是引用或指针将只具备重载函数(参数区分不同函数)的意义!
fibbery 2008-08-22
  • 打赏
  • 举报
回复
1.0和1实际上是一样的,只是在显示的时候不一样!

如果你将得到的值,以printf("%.1f\n",d);你将得到1.0的显示!所以,不见得是你转换的不对,只是你认为最初是1.0而后来是1的显示有差别而以!

重要的是你测试"1.1"转换后是不是1.1?
e_sharp 2008-08-22
  • 打赏
  • 举报
回复
atof
machaoqun6666 2008-08-22
  • 打赏
  • 举报
回复
自己想试一下这个
  • 打赏
  • 举报
回复
用atof不好么?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧