全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:666
推到 Plurk!
推到 Facebook!

為何計算結果均會是0?

尚未結案
chengwei
一般會員


發表:18
回覆:9
積分:5
註冊:2005-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-10 23:51:44 IP:140.116.xxx.xxx 未訂閱
我用BCB6寫了一段程式     
int Height=200,Width=200;
double range;
range=(double)(155/(Height*Width)); 
結果range為0而不是0.003875 請問這是什麼原因?
m58610
初階會員


發表:22
回覆:83
積分:36
註冊:2003-09-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-11 00:27:55 IP:203.70.xxx.xxx 未訂閱
int Height=200,Width=200; double range; range=(double)(155/((double)Height*Width)); 改成這樣試試
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-11 09:46:26 IP:61.66.xxx.xxx 未訂閱
chengwei你好    range=(double)(155/(Height*Width)); 中    155/(200*200) = 0;用/的方法是求商數,跟我們一般的數學算法是不一樣的 所以,你可以先把你可以用 double x = 10000.0 155*x(Height*Width)/x     
 
    int Height=200,Width=200;
    double range,x = 10000.0;
    range=(double)(155*x/(Height*Width)/x);
    printf("%.10f  ",range);
    getch();
wu-eric
中階會員


發表:14
回覆:82
積分:64
註冊:2004-03-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-13 20:26:12 IP:220.229.xxx.xxx 未訂閱
引言:int Height=200,Width=200; double range; range=(double)(155/(Height*Width)); 結果range為0而不是0.003875 請問這是什麼原因?
因155 在C裡面視為整數型態 又因 Height & Width 也是整數型態 在C裡面整數型態相除得到的值是商數, 也就是0.003875的整數部份(也不是4捨5入喔)
系統時間:2024-05-19 12:11:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!