MFC C++分割字符CString

Timon---老赵 2020-05-31 02:49:15
Cstring c="11,22";
怎么能分割成两个double;
...全文
562 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2020-06-10
  • 打赏
  • 举报
回复
用我的方法没问题呀,如果你对精度要求高,请百度以下高精度算法。
Timon---老赵 2020-06-10
  • 打赏
  • 举报
回复
引用 8 楼 真相重于对错 的回复:
因为计算机是2进制的,而我们一般使用10进制
所谓的小数,十进制的0.1代表把1分为10份,取其1份
二进制的小数,代表把1分为2份,取其1份
所以绝大多数10进制的小数无法准确转换为二进制小数,必然有误差

txt文件数据
[1.8888888,2,3;
4,5,6]
存储为mat 这个有方法吗?有十来个小数能读为矩阵吗?
真相重于对错 2020-06-10
  • 打赏
  • 举报
回复
因为计算机是2进制的,而我们一般使用10进制 所谓的小数,十进制的0.1代表把1分为10份,取其1份 二进制的小数,代表把1分为2份,取其1份 所以绝大多数10进制的小数无法准确转换为二进制小数,必然有误差
Timon---老赵 2020-06-10
  • 打赏
  • 举报
回复
引用 6 楼 真相重于对错的回复:
[quote=引用 5 楼 Timon---老赵的回复:][quote=引用 4 楼 真相重于对错 的回复:]
double dw1, dw2;
CString s = "11,22";
sscanf(s.GetBuffer(), "%lf,%lf", &dw1, &dw2);
这样会损失精度 比如15.222获取到的是15.220000000001[/quote] 建议了解一下,什么叫浮点数[/quote] 所以只能是这样吗?
真相重于对错 2020-06-10
  • 打赏
  • 举报
回复
引用 5 楼 Timon---老赵的回复:
[quote=引用 4 楼 真相重于对错 的回复:]
double dw1, dw2;
CString s = "11,22";
sscanf(s.GetBuffer(), "%lf,%lf", &dw1, &dw2);
这样会损失精度 比如15.222获取到的是15.220000000001[/quote] 建议了解一下,什么叫浮点数
Timon---老赵 2020-06-09
  • 打赏
  • 举报
回复
引用 4 楼 真相重于对错 的回复:
double dw1, dw2;
CString s = "11,22";
sscanf(s.GetBuffer(), "%lf,%lf", &dw1, &dw2);
这样会损失精度 比如15.222获取到的是15.220000000001
真相重于对错 2020-06-03
  • 打赏
  • 举报
回复
double dw1, dw2;
	CString s = "11,22";
	sscanf(s.GetBuffer(), "%lf,%lf", &dw1, &dw2);
Timon---老赵 2020-05-31
  • 打赏
  • 举报
回复
引用 2 楼 smwhotjay 的回复:
分两步。
1.分割字符串。 你这里是按逗号分割。
2.字符串转double atof 之类的
好的,谢谢
smwhotjay 2020-05-31
  • 打赏
  • 举报
回复
分两步。
1.分割字符串。 你这里是按逗号分割。
2.字符串转double atof 之类的
Simple-Soft 2020-05-31
  • 打赏
  • 举报
回复
可以用find,然后崽atof

64,686

社区成员

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

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