如何將小數點第三位之後無條件捨去 |
答題得分者是:mcho
|
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
引言: 請教各位先進: 如題,如何將浮點數中的小數點第三位之後做無條件捨去,不知在 delphi 中有何語法試函數可以達成....感激function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double; Description Call RoundTo to round AValue to a specified power of ten. AValue is the value to round. ADigit indicates the power of ten to which you want AValue rounded. It can be any value from ?7 to 37 (inclusive). |
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 請教各位先進: 如題,如何將浮點數中的小數點第三位之後做無條件捨去,不知在 delphi 中有何語法試函數可以達成....感激可以用數學解決 function RoundX(const AValue: Double; const ADigit: Integer): Double; var i: Extended; begin i := Power(10, ADigit); Result := Round(AValue * i) / i; end;使用方法 RoundX(實數, 小數位數)
------
將問題盡快結案也是一種禮貌! |
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
感謝你的解答,但我加入你說的function執行時會出現 power 這個function找不到,不知您是否知道為什麼?? 謝謝
引言:引言: 請教各位先進: 如題,如何將浮點數中的小數點第三位之後做無條件捨去,不知在 delphi 中有何語法試函數可以達成....感激可以用數學解決function RoundX(const AValue: Double; const ADigit: Integer): Double; var i: Extended; begin i := Power(10, ADigit); Result := Round(AValue * i) / i; end;使用方法 RoundX(實數, 小數位數) |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
ccchen大大:
小弟是新手,怎麼也沒法執行下列所述之程式,可否舉個完整一點的程式,包
括函數宣告...謝啦
引言: 直接就有現成的, 為何不用 function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double 例: var double d1,d2:integer; begin d1:=345.33333; d2:=Round(d1, 3); end; RoundTo, Power等均須在user中加入math |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 直接就有現成的, 為何不用 function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double 例: var double d1,d2:integer; begin d1:=345.33333; d2:=Round(d1, 3); end; RoundTo, Power等均須在user中加入mathccchen 兄 RoundTo 在我的 D5 中找不到耶! 是 D6 以上才有嗎 ?
------
將問題盡快結案也是一種禮貌! |
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
ccchen & danny 兄
你們的方法我終於都試過了,也都可執行,但你們的function出來的結果會將小數
點第三位以後四捨五入,而我需要的結果是【無條件捨去】...如
d1:=3.456789
我需要的結果是能得到3.456而不是3.457
還有勞各位動動腦....給後進一點提示.....感激!!!
引言:引言: ccchen大大: 小弟是新手,怎麼也沒法執行下列所述之程式,可否舉個完整一點的程式,包 括函數宣告...謝啦Sorry , 是d2:=RoundTo(d1,-3); |
mcho
初階會員 發表:57 回覆:106 積分:42 註冊:2002-11-11 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |