C++如何将std::string转化成高精度float?

IceSun1995 2015-04-04 11:40:19
C++如何将std::string转化成高精度float?
任务需求是转化成11~12位的float
...全文
1255 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiht594 2015-04-05
  • 打赏
  • 举报
回复
sscanf
jiht594 2015-04-05
  • 打赏
  • 举报
回复
atof函数
paschen 版主 2015-04-05
  • 打赏
  • 举报
回复
先把std::string转成const char* 再用 atof 或者 strtod 转换成double double精度高于float,如果需要float(当然你也可以把他赋给float变量,会进行隐式转换) /************************************************************ C语言库函数名: atof 功 能: 把字符串转换成浮点数. 名字来源:array to floating point numbers 的缩写. 原型: double atof(const char *nptr); 函数说明: atof()会扫描参数nptr字符串,跳过前面的空格字符,直到 遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束 时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、 小数点或E(e)来表示指数部分,如123.456或123e-2。 附加说明 atof()与使用strtod(nptr,(char**)NULL);结果相同。 头文件: #include <stdlib.h> *************************************************************/ /******************************************************************************************* strtod 函数及其参数   double strtod(const char *nptr,char **endptr); //注意没有后面的base,转换成浮点不支持。 函数的解释说明   strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换, 到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL, 则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含 正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。 ********************************************************************************************/ 如果标准库的这两个函数不能满足楼主要求,楼主也可以自己写一个,很容易的
707wk 2015-04-05
  • 打赏
  • 举报
回复
float精度只有那么多
ri_aje 2015-04-05
  • 打赏
  • 举报
回复
float 的进度你是控制不了的,这个是 ieee 定义的。 string to float 可以用 stof
辰岡墨竹 2015-04-05
  • 打赏
  • 举报
回复
float的精度一般只有7位有效数字。 你只能用double。

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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