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

計算結果問題

尚未結案
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-27 10:05:22 IP:210.202.xxx.xxx 未訂閱
請問 我在Edit1裡做運算 但是當計算結果為0時為什麼不會顯示0 而是其它數字(ex:1.232423132123)
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-27 10:13:30 IP:211.20.xxx.xxx 未訂閱
請寫出你的計算方式
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-27 10:18:46 IP:210.202.xxx.xxx 未訂閱
for(int i=1 ; i<=10 ; i ) Edit1->Text=-0.55 i*0.55
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-27 11:17:05 IP:211.76.xxx.xxx 未訂閱
nanaya 您好:    曾經有過的經驗是: 由於捨去誤差的關係,使得數值後面會帶一些其它數字,試著提高資料型態至double可解決部分問題。 或者是強迫以較精確的方式輸出結果,如限定小數點後出現的位數。參考下述程式碼:  
 void __fastcall TForm1::Button1Click(TObject *Sender)
{ AnsiString msg;      for (int i=1 ; i<=10 ; i  )
     { msg.printf("%.3f",-0.55 i*0.55 );
       Edit1->Text=msg;
       Edit1->Refresh();
       Sleep(200);
     }
}
另外有一件事小小聲悄悄告訴您:我在BCB6下測試您提出的程式碼好像沒有問題!?
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-27 11:36:38 IP:211.20.xxx.xxx 未訂閱
你試試下面那行 或找看看你有沒有其他的程式碼影嚮了你的值 Edit1->Text = (AnsiString)-0.55 i*0.55
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-27 12:15:35 IP:210.202.xxx.xxx 未訂閱
謝謝richtop & folkchen二位的回覆 可是我都試過二位的方法 可是還是沒辦法解決我的問題 還有其他的方式嗎?? 謝謝
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-27 12:39:23 IP:219.80.xxx.xxx 未訂閱
Hello nanaya, 你的程式碼裡面只有i=1時會等於0,程式碼run起來也沒問題. 你確定run那兩行時在i=1的情況下是跑出1.232423132123嗎?
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-27 15:56:41 IP:210.202.xxx.xxx 未訂閱
1.232423132123這數字是個比方 意思是說每一次顯示都可能不一樣(可是應該要顯示0) 因為我的計算過程是由16進制轉成10進制再開始計算 目前還是沒法解決
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-27 16:32:12 IP:211.76.xxx.xxx 未訂閱
可不可以將那部分的程式碼上傳,大夥再琢磨看看。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-07-27 18:33:38 IP:210.202.xxx.xxx 未訂閱
a為16進制資料(a=01~0A) Edit1->Text=AnsiString(FormatFloat("0.00",StrToInt(a))*0.55-0.55) 以上是我的程式 煩請各位前輩幚忙解決 謝謝~~~
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-07-27 19:16:22 IP:211.76.xxx.xxx 未訂閱
nanaya 您好:     
引言:a為16進制資料(a=01~0A) Edit1->Text=AnsiString(FormatFloat("0.00",StrToInt(a))*0.55-0.55)
a的值有點奇怪,如果要當成16進位應該在其前加上0x或0X,即0x00,...,0x0A,.., 如果只是當成您寫的方式,開頭的0會被認為是8進位數,這時08以上表示法就錯了(雖然還是會傳回值)。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2004/07/27 19:31:52
ubong
一般會員


發表:2
回覆:42
積分:23
註冊:2002-10-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-30 23:00:46 IP:218.163.xxx.xxx 未訂閱
Edit1->Text=AnsiString(FormatFloat("0.00",StrToInt(a))*0.55-0.55) 如果你的輸入沒錯應該是 Edit1->Text=AnsiString(FormatFloat("0.00",(StrToInt(a)*0.55-0.55)); 而且你的程式只會顯示i=9 時的結果 (i=1--8的計算是無意義的。) 你應該用個ListBox來顯示才有意義 ListBox1->Clear(); ListBox1->Items->Add(AnsiString(FormatFloat("0.00",(StrToInt(a)*0.55-0.55))); P.S. 我沒有實作,只就你的內文作分析。 ubong
------
ubong
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-07-31 12:34:57 IP:219.80.xxx.xxx 未訂閱
Hello nanaya, 試一下你那行的程式,run起來沒問題:
for (int i=0;i<10;i  )
{
 AnsiString aaa=FormatFloat("0.00",StrToInt(i))*0.55-0.55;
 Memo1->Lines->Add(aaa);
}
不曉得能不能把你16進位轉10進位的程式po上來呢?
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-07-31 12:55:17 IP:219.80.xxx.xxx 未訂閱
看看你寫的是否和我的一樣.
   AnsiString k;
   AnsiString n[11]={"0","1","2","3","4","5","6","7","8","9","a"};
   for (int i=0;i<11;i  )
   {
    k=StrToInt("0x" n[i]);   //16轉10
    AnsiString aaa=FormatFloat("0.00",StrToInt(k))*0.55-0.55; //計算
    Memo1->Lines->Add(aaa);  //顯示
   }
發表人 - nlj859 於 2004/07/31 12:56:09
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-08-02 08:40:39 IP:210.202.xxx.xxx 未訂閱
感謝各位前輩的指導.... 我已經解決了這個問題.....
系統時間:2024-06-26 9:28:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!