找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2027|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

求助 C語(yǔ)言計(jì)算問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
求助 C語(yǔ)言問題。
在C語(yǔ)言 123.456×3≠370.368
123.456×3=370.36799999999999999999999
number數(shù)據(jù)   轉(zhuǎn)字符  char數(shù)據(jù)時(shí),做了位數(shù)限制。

如果,不做限制,一點(diǎn)轉(zhuǎn)換就沒有了響應(yīng)。只能任務(wù)管理器里結(jié)束進(jìn)程;蛘唛L(zhǎng)按電腦電源。。。
想關(guān)機(jī),開始菜單也沒有反應(yīng)。。。。




text_char_number.rar (672.6 KB, 下載次數(shù): 8)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:908826 發(fā)表于 2021-12-3 07:54 | 只看該作者
你是在用c++搞什么開發(fā)哎,請(qǐng)問一下。
回復(fù)

使用道具 舉報(bào)

板凳
ID:883242 發(fā)表于 2021-12-3 16:52 | 只看該作者
明顯是number_char()的行為不符合你的預(yù)期,那就重寫好了。
回復(fù)

使用道具 舉報(bào)

地板
ID:987646 發(fā)表于 2021-12-3 17:01 | 只看該作者
精度問題,四舍五入就好了
回復(fù)

使用道具 舉報(bào)

5#
ID:313048 發(fā)表于 2021-12-3 18:11 | 只看該作者
正常的  精度問題,C++和C里面都有這種情況,還有一種情況就是XX.000000000000000000000001這種小數(shù)點(diǎn)后面多了那么個(gè)1,自己處理一下就好了 ,別大驚小怪。
回復(fù)

使用道具 舉報(bào)

6#
ID:417092 發(fā)表于 2021-12-4 01:19 | 只看該作者
13205495918 發(fā)表于 2021-12-3 07:54
你是在用c++搞什么開發(fā)哎,請(qǐng)問一下。

無(wú)聊時(shí)間,學(xué)點(diǎn)編程。打發(fā)無(wú)聊時(shí)間。。。。
回復(fù)

使用道具 舉報(bào)

7#
ID:301191 發(fā)表于 2021-12-4 01:24 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

8#
ID:139866 發(fā)表于 2021-12-4 18:00 | 只看該作者
這個(gè)是精度問題

51hei拼音截圖20211204155235.png (3.16 KB, 下載次數(shù): 49)

51hei拼音截圖20211204155235.png
回復(fù)

使用道具 舉報(bào)

9#
ID:883242 發(fā)表于 2021-12-4 18:34 | 只看該作者
我把出問題的函數(shù)提出來(lái),大家看看什么問題。

  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. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

10#
ID:976493 發(fā)表于 2021-12-4 20:41 | 只看該作者
精度問題,重新改一下就行
回復(fù)

使用道具 舉報(bào)

11#
ID:988182 發(fā)表于 2021-12-5 11:36 | 只看該作者
修改一下精度就可以了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表