Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[轉載] 一個很奇怪的 C 語言 的問題....Very St …

0 views
Skip to first unread message

影子

unread,
Sep 12, 1997, 3:00:00 AM9/12/97
to

: float dis=0, cutf=1.7;
^^^^^
將宣告改為 double 因為這是浮點數精密度的問題

--
Ψ Origin: 清華工工整合超人 bbs.ie.nthu.edu.tw From: [140.114.219.19] Ψ

影子

unread,
Sep 13, 1997, 3:00:00 AM9/13/97
to

※ 引述《fengjo...@bbs.pu.edu.tw (我愛我姊姊)》之銘言:
: 有一個很奇怪的問題想請教大家...
: 下面是我寫的一個小程式...
: 目地是: dis=0 cutf=1.7
: 做 dis = dis + cutf 一直累加 加 16 次...
: 可是問題來了... cutf 是 1.7 (理論上是不會變了...永遠都 1.7)
: 可是...
: 為什麼 會出現 有小數點 第二位以下的小數出現呢???
: (如 從 i=8 開始 就出現 13.599999 15.299999 ....一直出現小小小數...)
: main()
: {
: float dis=0, cutf=1.7;
^^^^^^^^^^^^^^^^^^^^^^^
如果想要佔小點的空間就用
float tem;
int dis=0,cutf=17;
在使用時再換成浮點數
tem=(float)dis/10.0f;

: printf("\n%f...%d\n",cutf,i++);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
printf("\n%f...%d\n",(float)cutf/10.0f,i++);
若只是想顯示出來可用
printf("\n2.1%f...%d\n",cutf,i++);

影子

unread,
Sep 13, 1997, 3:00:00 AM9/13/97
to

※ 引述《fengjo...@bbs.pu.edu.tw (我愛我姊姊)》之銘言:
: 【 原文由 [32m fengjoue [37m 所發表 】 [m
: /******************************************************************************

: 有一個很奇怪的問題想請教大家...
: 下面是我寫的一個小程式...
: 目地是: dis=0 cutf=1.7
: 做 dis = dis + cutf 一直累加 加 16 次...
: 可是問題來了... cutf 是 1.7 (理論上是不會變了...永遠都 1.7)
: 所以... dis = dis + 1.7 如此做了 16 次
: 答案應該是 1.7 3.4 5.1 ... 27.2

: 可是...
: 為什麼 會出現 有小數點 第二位以下的小數出現呢???

: ******************************************************************************/
: : float dis=0, cutf=1.7;
: : ^^^^^
: : 將宣告改為 double 因為這是浮點數精密度的問題

:可是 double 比較佔記憶體啊...
:更何況我只要 取到小數點以下第一位而已啊...
:我想...用不到 double 吧...
:會不會太浪費啊???
看個人需要吧!
若變數只是少數那又何必在乎這些空間呢

--
Ψ Origin: 清華工工整合超人 bbs.ie.nthu.edu.tw From: [140.114.219.36] Ψ

0 new messages