四捨五入 無條件進位 無條件捨去
=====================================================
四捨五入 SimpleRoundTo
Unit Math
// Delphi syntax:
typedef Word TSimpleRoundToRange;
extern PACKAGE double __fastcall SimpleRoundTo(const double AValue, const TSimpleRoundToRange ADigit = -2);
// 範例:
SimpleRoundTo(1234567, 3) = 1234000
SimpleRoundTo(1.234, -2) = 1.23
SimpleRoundTo(1.235, -2) = 1.24
SimpleRoundTo(-1.235, -2) = -1.23
=====================================================
四捨六入五成雙 Round ()
在Delphi中使用Round函數得到的答案有時與我們所預期的會不太一樣:
採用的是四捨六入五留雙。即當捨或入位大於或小於五時按四捨五入來處理,
而當捨或入位等於五時,就要看前面一位元是什麼,根據奇進偶不進,它總是返回一個偶數值。
例:
i:= Round(11.5)//i等於12
i:= Round(10.5)//i等於10
這種Round其實是按照銀行家演算法,統計學上一般都用這種演算法,比傳統的”四捨五入”要科學。
Unit System
// Delphi syntax:
function Round(X: Extended): Int64;
// 範例:
Round(1.4) = 1
Round(2.4) = 2
Round(1.5) = 2
Round(2.5) = 2
Round(1.6) = 2
Round(2.6) = 3
//
Round(-1.4) = -1
Round(-2.4) = -2
Round(-1.5) = -2
Round(-2.5) = -2
Round(-1.6) = -2
Round(-2.6) = -3
=====================================================
無條件進位 Ceil
(取得大於等於X的最小的整數)
Unit Math
// Delphi syntax:
function Ceil(const X: Extended):Integer;
// 範例:
Ceil(-3.8) = -3
Ceil(3.8) = 4
Ceil(-1.0) = -1
注意: X 值必須小於 MaxInt
=====================================================
無條件捨去 Floor
(取得小於等於X的最大的整數)
Unit Math
// Delphi syntax:
function Floor(const X: Extended): Integer;
// 範例:
Floor(-2.8) = -3
Floor(3.8) = 3
Floor(-2.0) = -2
注意: X 的絕對值必須小於 MaxInt
=====================================================
取整數 Trunc
Unit System
// Delphi syntax:
function Trunc(X: Extended): Int64;
// 範例:
Trunc(1.3) = 1
Trunc(-1.3) = -1
Trunc(3.6) = 3
Trunc(-3.6) = -3
=====================================================
取小數 Frac
Unit System
// Delphi syntax:
function Frac(X: Extended): Extended;
// 範例:
Frac(125.456) = 0.456
Frac(-125.456) = -0.456
👉 Delphi-Component-TProgressBar進度條範例
我們團隊使用Delphi已經三十年以上的經驗,如果有什麼問題,也可以在下方留言處與我們分享,感謝您!!
手刀試用=>蝦皮對帳王
手刀試用=>康捷雲端ERP

Comments