请问如何将string转换为float类型

pan7861 2007-06-25 12:54:54
例如string = "2.501";
转换成float类型的数据后值也是2.501,我用stream总是变成2.5009999.
...全文
532 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y___Y 2007-06-25
  • 打赏
  • 举报
回复
sscanf函数即可
float精度有限,正常的,可以考虑用double
taodm 2007-06-25
  • 打赏
  • 举报
回复
兄弟,你基础知识没过呀。浮点数都是不精确的。浮点是用1/2的n次方累加逼近的。
pan7861 2007-06-25
  • 打赏
  • 举报
回复
对了不能用到CString
jxchen121 2007-06-25
  • 打赏
  • 举报
回复
atof可以的,完全正确。
taodm 2007-06-25
  • 打赏
  • 举报
回复
楼主啊,你还是google IEEE浮点格式,补补基础知识吧。
pan7861 2007-06-25
  • 打赏
  • 举报
回复
不要光看屏幕输出调试一下看看结果,不是2.501.我要做的是将2.501赋值给一个FLOAT变量,不是在屏幕输出.
pan7861 2007-06-25
  • 打赏
  • 举报
回复
我想要的结果不是2.5099999我想要的结果是2.501
endresult 2007-06-25
  • 打赏
  • 举报
回复
atof绝对可以的!
ligang19840226 2007-06-25
  • 打赏
  • 举报
回复
星羽的
对!可以,我刚试了
ligang19840226 2007-06-25
  • 打赏
  • 举报
回复
用函数atof就应该可以的
pan7861 2007-06-25
  • 打赏
  • 举报
回复
atof得出的不还是2.5099999么
freeman868 2007-06-25
  • 打赏
  • 举报
回复
用函数atof
pan7861 2007-06-25
  • 打赏
  • 举报
回复
应该可以啊,我可以计算这个STRING中小数点后字符串的长度,然后转换的时候保留小数点后多少位就可以了
星羽 2007-06-25
  • 打赏
  • 举报
回复
int main()
{
char* string = "2.501";
float f = atof(string);
cout<<f<<endl;

return 0;
}
pan7861 2007-06-25
  • 打赏
  • 举报
回复
taodm:我只是确认一下,转换的函数不是我写的,数据不对我想改.

33,311

社区成员

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

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