線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1149
推到 Plurk!
推到 Facebook!

关于pow的问题?

答題得分者是:Zard
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-23 09:57:56 IP:218.64.xxx.xxx 未訂閱
我碰到c语言中有这样的源码  
for (i=1;i<=n_out;i  )
     result=(int)pow(2,double(4-i)); 
不知道在delphi中是怎么表示的? 恳请前辈们指教
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-23 10:27:07 IP:61.64.xxx.xxx 未訂閱
引言: 我碰到c语言中有这样的源码
for (i=1;i<=n_out;i  )
     result=(int)pow(2,double(4-i)); 
不知道在delphi中是怎么表示的? 恳请前辈们指教
procedure TForm1.Button1Click(Sender: TObject);
var
 i, n_out: Integer;
 iResult: Extended;    begin
  n_out := 1000;
  for i := 1 to n_out do
     iResult := IntPower(2, 4-i);
end;    
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-23 11:05:32 IP:218.64.xxx.xxx 未訂閱
多谢Zard的指点
var
 i, n_out: Integer;
 iResult: extended;    begin
  n_out := 1000;
  for i := 1 to n_out do
     iResult := IntPower(2, 4-i);
     memo1.Lines .add(extendedtostr(iResult));这句出错了
end;
  
如果我想得到的iResult是int型的,应该怎么修改呢?
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-23 11:16:12 IP:61.64.xxx.xxx 未訂閱
引言: 多谢Zard的指点
var
 i, n_out: Integer;
 iResult: extended;    begin
  n_out := 1000;
  for i := 1 to n_out do
     iResult := IntPower(2, 4-i);
     memo1.Lines .add(extendedtostr(iResult));这句出错了
end;
  
如果我想得到的iResult是int型的,应该怎么修改呢?
沒有一個Function叫 extendedtostr 的 . > >即可. 另外
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-23 11:34:17 IP:218.64.xxx.xxx 未訂閱
如果要将其转为integer的话,可以怎么写吗??不好意思,不要嫌我烦哈
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-23 11:55:49 IP:61.64.xxx.xxx 未訂閱
引言: 如果要将其转为integer的话,可以怎么写吗??不好意思,不要嫌我烦哈
    procedure TForm1.Button1Click(Sender: TObject);
var
 i: Integer;
 iResult: Extended;
 iResult2: Int64;
begin
 iResult := IntPower(2, 10);     // 捨棄小數點部份
 iResult := Int(iResult);     // 將Extended轉為Int64
 try 
   iResult2 := Trunc(iResult);
   
   //顯示結果
   ShowMessage(IntToStr(iResult2)); 
 except
   ShowMessage('轉換失敗!!');
 end;
end;    
重點為: 1. 轉換Extended型態為Integer時要用Int64 2. 當Extended的值超過Int64所能表示的範圍時會產生 EInvalidOp exception, 也就是說轉換不見得會成功(例如改為IntPower(2, 1000);, 就會失敗IntPower(2, 10);)
系統時間:2024-07-01 7:56:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!