找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2097|回复: 10
收起左侧

求助 C语言计算问题

[复制链接]
ID:417092 发表于 2021-12-2 23:44 | 显示全部楼层 |阅读模式
求助 C语言问题。
在C语言 123.456×3≠370.368
123.456×3=370.36799999999999999999999
number数据   转字符  char数据时,做了位数限制。

如果,不做限制,一点转换就没有了响应。只能任务管理器里结束进程。或者长按电脑电源。。。
想关机,开始菜单也没有反应。。。。

01.jpg
02.jpg

text_char_number.rar (672.6 KB, 下载次数: 8)


回复

使用道具 举报

ID:908826 发表于 2021-12-3 07:54 | 显示全部楼层
你是在用c++搞什么开发哎,请问一下。
回复

使用道具 举报

ID:883242 发表于 2021-12-3 16:52 | 显示全部楼层
明显是number_char()的行为不符合你的预期,那就重写好了。
回复

使用道具 举报

ID:987646 发表于 2021-12-3 17:01 | 显示全部楼层
精度问题,四舍五入就好了
回复

使用道具 举报

ID:313048 发表于 2021-12-3 18:11 | 显示全部楼层
正常的  精度问题,C++和C里面都有这种情况,还有一种情况就是XX.000000000000000000000001这种小数点后面多了那么个1,自己处理一下就好了 ,别大惊小怪。
回复

使用道具 举报

ID:417092 发表于 2021-12-4 01:19 | 显示全部楼层
13205495918 发表于 2021-12-3 07:54
你是在用c++搞什么开发哎,请问一下。

无聊时间,学点编程。打发无聊时间。。。。
回复

使用道具 举报

ID:301191 发表于 2021-12-4 01:24 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:139866 发表于 2021-12-4 18:00 | 显示全部楼层
这个是精度问题
51hei拼音截图20211204155235.png
回复

使用道具 举报

ID:883242 发表于 2021-12-4 18:34 | 显示全部楼层
我把出问题的函数提出来,大家看看什么问题。

  1. void number_char(double num ,char *pch)
  2. {
  3.         int i=0, j=0;
  4.         long k=1, zs=0;
  5.         while((long)num > 10*k)
  6.                 k *= 10;
  7.         for(i=0; k>=1;i++)
  8.         {
  9.                 pch[i] = ((long)num)%(10*k)/k+48;
  10.                 k /= 10;
  11.         }
  12.         pch[i]=46;
  13.         for(j=0; j<i; j++)
  14.         {
  15.                 zs *= 10;
  16.                 zs += pch[j]-48;
  17.         }
  18.         num -= zs;
  19.         while(num > 0.0000001 && i<18)
  20.         {
  21.                 num *= 10.0;
  22.                 i++;
  23.                 pch[i] = ((long)num)/1+48;
  24.                 num = num- ((long)num)/1;
  25.         }
  26. }
复制代码
回复

使用道具 举报

ID:976493 发表于 2021-12-4 20:41 | 显示全部楼层
精度问题,重新改一下就行
回复

使用道具 举报

ID:988182 发表于 2021-12-5 11:36 | 显示全部楼层
修改一下精度就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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