VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 694|回复: 6

[已解决]求助 C语言问题。 在C语言 123.456×3≠370.368

[复制链接]
38_avatar_middle
最佳答案
0 
在线会员 发表于 2021-12-3 04:00:54 | 显示全部楼层 |阅读模式
求助 C语言问题。
在C语言 123.456×3≠370.368
123.456×3=370.36799999999999999999999
number数据   转字符  char数据时,做了位数限制。

如果,不做限制,一点转换就没有了响应。只能任务管理器里结束进程。或者长按电脑电源。。。
想关机,开始菜单也没有反应。。。。
求助 C语言问题。 在C语言 123.456×3≠370.368
求助 C语言问题。 在C语言 123.456×3≠370.368
求助 C语言问题。 在C语言 123.456×3≠370.368 text_char_number.rar (672.6 KB, 下载次数: 4)




上一篇:运算符重载的问题
下一篇:POST请求时,密码加密怎么解决
00_avatar_middle
最佳答案
13 
在线会员 发表于 2021-12-3 20:32:32 | 显示全部楼层
这样不行吗
CString dtos(double d)
{
         CString str;
         str.Format(_T("%.3lf"), d);
         return str;
}
textBox3->Text = dtos(num*3);

求助 C语言问题。 在C语言 123.456×3≠370.368
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-12-3 23:04:04 | 显示全部楼层
没安装C++/CLI,单单计算123.456*3不可能卡呀,导致卡的原因应该是你写的那几个转换函数。
另外,C++/CLI微软已放弃多年,用C++/CLI的话不如用C#!
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-12-4 00:29:14 | 显示全部楼层
oyxbl 发表于 2021-12-3 20:32
这样不行吗
CString dtos(double d)
{

不是不行,是不会用。
C入门水平。。。。
C++,只会照猫画虎。。。
大家 都说我画的小狗栩栩如生。。。。

猫不像猫。虎不像虎。。。最后变成了狗。。。
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-12-4 00:36:16 | 显示全部楼层
cpp2019 发表于 2021-12-3 23:04
没安装C++/CLI,单单计算123.456*3不可能卡呀,导致卡的原因应该是你写的那几个转换函数。
另外,C++/CLI ...

卡的原因已经知道了。。。定义了 char ch0[20]={0};来存放转化成的字符。。。
370.36799999…………
内存地址溢出了。。。

我奇怪是 123.456×3≠370.368
00_avatar_middle
最佳答案
13 
在线会员 发表于 2021-12-4 07:39:20 | 显示全部楼层
本帖最后由 oyxbl 于 2021-12-4 18:25 编辑
zmrghy 发表于 2021-12-4 00:36
卡的原因已经知道了。。。定义了 char ch0[20]={0};来存放转化成的字符。。。
370.36799999…………
内 ...


类似这种
1/3=0.33无限循环
1/3*3=1
0.33无限循环*3=0.99无限循环
0.99无限循环=1
求助 C语言问题。 在C语言 123.456×3≠370.368
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-12-4 23:24:23 | 显示全部楼层    本楼为最佳答案   
bestAnswer
zmrghy 发表于 2021-12-4 00:36
卡的原因已经知道了。。。定义了 char ch0[20]={0};来存放转化成的字符。。。
370.36799999…………
内 ...

123.456x3 C/C++中怎么写结果都可以是 370.368,不限定小数点位数也没问题,默认最多保小数点留后6位。

  1. #include <iostream>

  2. int main()
  3. {
  4.         std::cout << 123.456 * 3.0 << "\n";

  5.         char chRet[20]{ 0 };
  6.         sprintf_s(chRet, "%f\n", 123.456 * 3.0);
  7.         std::cout << chRet << "\n";

  8.         double dRet = atof(chRet);
  9.         std::cout << dRet << "\n";

  10.         printf("%.3f\n", 123.456 * 3.0);

  11.         return 0;
  12. }
复制代码
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-8 16:44

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表