回文章列表
作者coscell.bbs@bbs.cis.nctu.edu.tw (goodman) 看板: linux
標題Re: 奇怪的程式結果
時間交大資科_BBS (2008/03/18 Tue 09:22:41)
==> 在 WolfLord.bbs@ptt.cc (呆呆小狼�� �� ��N�� �� ) 的文章中提到:
> ※ 引述《coscell.bbs@bbs.cis.nctu.edu.tw (goodman)》之銘言:
> : 請教各位前輩下面這段程式:
> : #include <stdio.h>
> : int main()
> : {
> :   long int salary=10800000;
> :   float tax=0.48;
>     double tax=0.48;
> :   printf("年薪:\t%ld\n",salary);
> :   printf("稅額:\t%f\n",salary*tax);
> :   return 0;
> : }
> 這樣應該就可以了,因為浮點數的精密度不足無法表示那麼多的數字位數。
> 改成倍精度浮點數問題就解決了。
果然如此,多謝多謝!
tax 只有小數兩位,理所當然覺得用 float 就夠了。
printf 用常數驗證也沒問題。怎麼也沒想到問題出在變數宣告。
C 語言真南!
--
 * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻