Delphi_XE2 Math單元函數(shù)_第1頁
Delphi_XE2 Math單元函數(shù)_第2頁
Delphi_XE2 Math單元函數(shù)_第3頁
Delphi_XE2 Math單元函數(shù)_第4頁
Delphi_XE2 Math單元函數(shù)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、*數(shù)學(xué)函數(shù)單元*CodeGear Delphi / Kylix 跨平臺運行時(Runtime)庫Copyright (c) 1995, 2011 embarcadero技術(shù)*這個單元包含高性能的算術(shù)、三角、對數(shù)、統(tǒng)計和金融方面的計算及FPU程序函數(shù)用于補充Delphi語言System.pas 單元中的數(shù)學(xué)常規(guī)程序函數(shù)參考:1) P.J. Plauger, "The Standard C Library", Prentice-Hall, 1992, Ch. 7. 標(biāo)準(zhǔn)C程序庫2) W.J. Cody, Jr., and W. Waite, "Software Man

2、ual For the Elementary Functions", Prentice-Hall, 1980.軟件手冊初步3) Namir Shammas, "C/C+ Mathematical Algorithms for Scientists and Engineers", McGraw-Hill, 1995, Ch 8.C/C+ 數(shù)學(xué)的運算法則對于科學(xué)家和工程師4) H.T. Lau, "A Numerical Library in C for Scientists and Engineers", CRC Press, 1994, Ch.

3、 6.C語言中的數(shù)字的程序庫對于科學(xué)家和工程師5) "Pentium(tm) Processor User's Manual, Volume 3: Architecture and Programming Manual", Intel, 1994Pentium(tm) 處理器使用手冊,第 3 冊: 體系結(jié)構(gòu)和程序手冊注意1) 對于有些函數(shù),這個單元中涉及的概念或常數(shù)由Earl F. Glynn () 和 Ray Lischner (www.tempest-)提供。2) 所有的角度參數(shù)和三角函數(shù)返回值都用弧度表示3) 下列大部分的三角和對數(shù)程序直接的映射到Intel

4、80387 FPU浮點指令4) 輸入域、輸出范圍和錯誤處理主要由 FPU 硬件決定5) X86 BASM匯編程序中的代碼支持Pentium FPU 管線體系6)l 常數(shù)IEEE 浮點類型的范圍, 包括非正規(guī)的1) MinSingle = 1.4012984643248170709e-45; 最小Single數(shù)2) MaxSingle = 340282346638528859811704183484516925440.0;最大Single數(shù)3) MinDouble = 4.9406564584124654418e-324;最小Double數(shù)4) MaxDouble = 1.79769313486

5、23157081e+308;最大Double數(shù)如果是32位5) MinExtended = 3.64519953188247460253e-4951; 最小Extended數(shù)6) MaxExtended = 1.18973149535723176505e+4932;最大Extended數(shù)如果是64位MinExtended = MinDouble;MaxExtended = MaxDouble;7) MinComp = -9223372036854775807; 最小Comp數(shù)8) MaxComp = 9223372036854775807; 最大Comp數(shù)下列常數(shù)不應(yīng)當(dāng)被用于比較關(guān)系,僅僅用于

6、分配。若要用于比較關(guān)系請使用IsNan 和 IsInfinity 函數(shù)。(已提供在后面)9) NaN = 0.0 / 0.0; 非數(shù) 10) Infinity = 1.0 / 0.0; 正無窮大 11) NegInfinity = -1.0 / 0.0; 負(fù)無窮大 一、 三角函數(shù)( 輸入: |X| <= 1 , 輸出: 0.PI 弧度)1) 函數(shù) ArcCos(const X: Extended): Extended; ArcCos(const X:Double):Double; ArcCos(const X:Single):Single(輸入: |X| <= 1, 輸出: -PI

7、/2PI/2 弧度)2) 函數(shù) ArcSin(const X: Extended): Extended; ArcSin(const X:Double):Double; ArcSin(const X:Single):Single(ArcTan2計算 ArcTan(Y/X), 并且返回一個正確象限角。輸入: |Y| < 264, |X| < 264, X <> 0輸出: -PIPI 弧度)。3) 函數(shù) ArcTan2(const Y, X: Extended): Extended; ArcTan2 (const Y, X:Double):Double; ArcTan2 (c

8、onst Y, X:Single):Single(SinCos過程比分別調(diào)用Sin 和Cos 計算同一個角度快兩倍.輸入Theta,輸出Sin,Cos)4) 過程 SinCos(const Theta: Extended; var Sin, Cos: Extended) ;/正弦,余弦函數(shù) SinCos(const Theta: Single; var Sin, Cos: Single) ; SinCos(const Theta: Double; var Sin, Cos:Double) ;5) 函數(shù) Tan(const X: Extended): Extended;/正切函數(shù) Tan(con

9、st X:Double):Double; Tan(const X:Single):Single;6) 函數(shù) Cotan(const X: Extended): Extended; 余切函數(shù)1 / tan(X), X <> 0 Cotan(const X:Double):Double; Cotan(const X:Single):Single;7) 函數(shù) Secant(const X: Extended): Extended; 正割函數(shù) 1 / cos(X) Secant (const X:Double):Double; Secant (const X:Single):Single;

10、8) 函數(shù) Cosecant(const X: Extended): Extended; 余割函數(shù) 1 / sin(X) Cosecant (const X:Double):Double; Cosecant (const X:Single):Single; 求直角三角形斜邊長度,Sqrt(X2 + Y2) 9) 函數(shù) Hypot(const X, Y: Extended): Extended; Hypot (const X, Y:Double):Double; Hypot (const X, Y:Single):Single;二、 角度單位換算程序以下函數(shù)均有Double和Single數(shù)據(jù)類型

11、1) 函數(shù) RadToDeg(const Radians: Extended): Extended; 度數(shù):= 弧度 * 180 / PI 2) 函數(shù) RadToGrad(const Radians: Extended): Extended; 梯度:= 弧度 * 200 / PI 3) 函數(shù) RadToCycle(const Radians: Extended): Extended; 圓周:= 弧度 / 2PI 4) 函數(shù)DegToRad(const Degrees: Extended): Extended; 弧度:= 度數(shù)* PI / 1805) 函數(shù)DegToGrad(const Degr

12、ees: Extended): Extended;6) 函數(shù)DegToCycle(const Degrees: Extended): Extended;7) 函數(shù)GradToRad(const Grads: Extended): Extended; 弧度:= 梯度 * PI / 200 8) 函數(shù)GradToDeg(const Grads: Extended): Extended;9) 函數(shù)GradToCycle(const Grads: Extended): Extended;10) 函數(shù)CycleToRad(const Cycles: Extended): Extended; 弧度:= 圓

13、周* 2PI 11) 函數(shù)CycleToDeg(const Cycles: Extended): Extended;12) 函數(shù)CycleToGrad(const Cycles: Extended): Extended;三、 雙曲線函數(shù)及其逆函數(shù)以下函數(shù)均有Double和Single數(shù)據(jù)類型1) 弧度 Cot(const X: Extended): Extended; 別名為 Cotan余切 2) 函數(shù) Sec(const X: Extended): Extended; 別名為 Secant 正割3) 函數(shù) Csc(const X: Extended): Extended; 別名為 Cosec

14、ant 余割4) 函數(shù) Cosh(const X: Extended): Extended; /雙曲余弦5) 函數(shù) Sinh(const X: Extended): Extended; / 雙曲正弦6) 函數(shù) Tanh(const X: Extended): Extended; /雙曲正切7) 函數(shù) CotH(const X: Extended): Extended; /雙曲余切8) 函數(shù) SecH(const X: Extended): Extended; /雙曲正割9) 函數(shù) CscH(const X: Extended): Extended; /雙曲余割10) 函數(shù) ArcCot(con

15、st X: Extended): Extended; 反余切 IN: X <> 0 11) 函數(shù) ArcSec(const X: Extended): Extended; 反正割 IN: X <> 0 12) 函數(shù) ArcCsc(const X: Extended): Extended; 反余割 IN: X <> 0 13) 函數(shù) ArcCosh(const X: Extended): Extended; 反雙曲余弦IN: X >= 1 14) 函數(shù) ArcSinh(const X: Extended): Extended;/反雙曲正弦15) 函數(shù) A

16、rcTanh(const X: Extended): Extended; 反雙曲正切IN: |X| <= 1 16) 函數(shù) ArcCotH(const X: Extended): Extended; 反雙曲余切 IN: X <> 0 17) 函數(shù) ArcSecH(const X: Extended): Extended; 反雙曲正割 IN: X <> 0 18) 函數(shù) ArcCscH(const X: Extended): Extended; 反雙曲余割I(lǐng)N: X <> 0 四、 對數(shù)函數(shù)以下函數(shù)均有Double和Single數(shù)據(jù)類型1) 函數(shù) LnX

17、P1(const X: Extended): Extended; 基于e為底,計算Ln(X + 1), 精度X接近于0 2) 函數(shù) Log10(const X: Extended): Extended; 底為10的X對數(shù)3) 函數(shù) Log2(const X: Extended): Extended; 底為2的X對數(shù)4) 函數(shù) LogN(const N, X: Extended): Extended; 底為N的X對數(shù)五、 指數(shù)函數(shù)IntPower:任意底數(shù)Base的Exponent整指數(shù)。快;以下函數(shù)Base參數(shù)均有Double和Single數(shù)據(jù)類型1) 函數(shù) IntPower(const Ba

18、se: Extended; const Exponent: Integer): Extended;Power:任意底數(shù)的任意指數(shù); 對于分指數(shù),或 |指數(shù)| > MaxInt, 底數(shù)必須> 0,以下函數(shù)均有Double和Single數(shù)據(jù)類型2) 函數(shù) Power(const Base, Exponent: Extended): Extended;六、 各種例程以下函數(shù)均有Double和Single數(shù)據(jù)類型1) 過程 Frexp(const X: Extended; var Mantissa: Extended; var Exponent: Integer) ;Frexp:將浮點數(shù)X

19、分離出 尾數(shù)M和指數(shù)E;X=M*2E2) 函數(shù) Ldexp(const X: Extended; const P: Integer): Extended register;Ldexp:返回值= X*2P 3) 函數(shù) Ceil(const X: Extended):Integer;Ceil:返回>= X的最小整數(shù), |X| < MaxInt 4) 函數(shù) Floor(const X: Extended): Integer;Floor:返回 <= X的最大整數(shù), |X| < MaxInt 5) 函數(shù) Poly(const X: Extended; const Coeffici

20、ents: array of Double): Extended;Ploy:計算變量為X的一元高次方程多項式的值,數(shù)組C為各項系數(shù);X的指數(shù)隨著系數(shù)的次序增長。即數(shù)組中的第0位系數(shù)的指數(shù)為0,第N位系數(shù)的指數(shù)為N。表達(dá)式如下:返回值=C0*X0 + C1*X1 + C2*X2 . + CN*XN。七、 統(tǒng)計函數(shù)對于這些統(tǒng)計的和財務(wù)函數(shù),常見的商業(yè)電子表格中的名字已經(jīng)寫在每個函數(shù)后面的注釋中。以下函數(shù)均有Double和Single數(shù)據(jù)類型1) 函數(shù) Mean(const Data: array of Extended): Extended;求數(shù)組Data的算術(shù)平均值(AVG): SUM / N

21、;SUM(Data) / (High(Data) - Low(Data) + 1)2) 函數(shù) Sum(const Data: array of Extended): Extended;求Data數(shù)組的和 (SUM) 3) 函數(shù) SumInt(const Data: array of Integer): Integer ;求整型數(shù)組Data的和,本函數(shù)只有整數(shù)類型4) 函數(shù) SumOfSquares(const Data: array of Extended): Extended;/數(shù)組Data平方和5) 過程 SumsAndSquares(const Data: array of Extend

22、ed; var Sum, SumOfSquares: Extended) ;返回數(shù)組Data的總和Sum、平方和SumOfSquares6) 函數(shù) MinValue(const Data: array of Extended): Extended;返回Data數(shù)組中最小數(shù)(MIN)7) 函數(shù) MinIntValue(const Data: array of Integer): Integer;返回Data數(shù)組中最小數(shù)(MIN),本函數(shù)只有整數(shù)類型8) 函數(shù) Min(const A, B: Integer): Integer; 返回最小整數(shù)9) 函數(shù) Min(const A, B: Int64)

23、: Int64; 返回最小Int64數(shù)10) 函數(shù) Min(const A, B: UInt64):U Int64; 返回?zé)o符號最小UInt64數(shù)11) 函數(shù) Min(const A, B: Single): Single; 返回最小Single數(shù)12) 函數(shù) Min(const A, B: Double): Double; 回最小Double數(shù)13) 函數(shù) Min(const A, B: Extended): Extended; 返回最小Extended數(shù)14) 函數(shù) MaxValue(const Data: array of Extended): Extended;返回Data數(shù)組最大數(shù)(

24、MAX)15) 函數(shù) MaxIntValue(const Data: array of Integer): Integer;返回Integer數(shù)組最大數(shù)16) 函數(shù) Max(const A, B: Integer): Integer;返回最大Integer數(shù)17) 函數(shù) Max(const A, B: Int64): Int64;返回最大Int64數(shù)18) 函數(shù) Max(const A, B:U Int64): UInt64;返回最大UInt64數(shù)19) 函數(shù) Max(const A, B: Single): Single;;返回最大Single數(shù)20) 函數(shù) Max(const A, B:

25、Double): Double; o;返回最大Double數(shù)21) 函數(shù) Max(const A, B: Extended): Extended;;返回最大Extended數(shù)22) 函數(shù) StdDev(const Data: array of Extended): Extended;樣本標(biāo)準(zhǔn)偏差(STD); Sqrt(Variance(Data),又叫做樣本標(biāo)準(zhǔn)偏差;樣本標(biāo)準(zhǔn)差:23) 過程 MeanAndStdDev(const Data: array of Extended; var Mean, StdDev: Extended);在一次調(diào)用中計算算術(shù)平均值(Mean)和標(biāo)準(zhǔn)偏差(StdD

26、ev)24) 函數(shù) PopnStdDev(const Data: array of Extended): Extended;總體標(biāo)準(zhǔn)差(STDP);Sqrt(PopnVariance(Data),用于商業(yè)和財務(wù)的計算總體標(biāo)準(zhǔn)差:25) 函數(shù) Variance(const Data: array of Extended): Extended;采樣方差(樣本方差)(VARS);TotalVariance(Data) /( N-1))樣本方差:26) 函數(shù) PopnVariance(const Data: array of Extended): Extended;總體方差:(VAR or VARP)

27、: TotalVariance/ N ;總體方差:;27) 函數(shù) TotalVariance(const Data: array of Extended): Extended;總方差:SUM(i=1,N)(X(i) - Mean)*2 ;28) 函數(shù) Norm(const Data: array of Extended): Extended;計算向量X的二范數(shù),返回值=Sqrt(a2+b2+.) 29) 過程 MomentSkewKurtosis(const Data: array of Double; var M1, M2, M3, M4, Skew, Kurtosis: Extended)

28、;MomentSkewKurtosis::計算統(tǒng)計分解的核心因數(shù),此過程僅此一種類型。M1:平均值(Mean)M2:方差(Variance)Skew:反映分布的對稱性M3 / (M2(3/2)Kurtosis:反映分布的平坦性M4 / Sqr(M2)30) 函數(shù) RandG(Mean, StdDev: Extended): Extended;RandG:產(chǎn)生一個隨機數(shù),符合高斯分布StdDev,其平均值為Mean,用于模擬數(shù)據(jù)抽取樣品誤差八、 普通/混雜函數(shù)1. 極端測試: NaN 用于判斷計算中出現(xiàn)的錯誤情況,表示“不明確的數(shù)值結(jié)果”。就像一個無限大,一個 NaN雙精度值有一個7FF的指數(shù),

29、但 NaN 值有一個不是0的分?jǐn)?shù)域。1) 函數(shù) IsNan(const AValue: Double): Boolean; overload; 2) 函數(shù) IsNan(const AValue: Single): Boolean; overload;3) 函數(shù) IsNan(const AValue: Extended): Boolean; overload;測試是否為“無窮大”就像一個NaN,一個無窮大的雙精度值具有一個 7FF指數(shù),但無窮大的值有一個0的分?jǐn)?shù)域。無窮大的值可以是正的或負(fù)的,在高位指定其符號位。4) 函數(shù) IsInfinite(const AValue: Double): Bo

30、olean; 5) 函數(shù) IsInfinite (const AValue: Single): Boolean; overload;6) 函數(shù) IsInfinite (const AValue: Extended): Boolean; overload;2. 簡單符號測試判斷Avlue的符號,返回-1,0,1。type TValueSign = -1.1;const NegativeValue = Low(TValueSign); ZeroValue = 0; PositiveValue = High(TValueSign);1) 函數(shù) Sign(const AValue: Integer):

31、 TValueSign; overload; 2) 函數(shù) Sign(const AValue: Int64): TValueSign; overload;3) 函數(shù) Sign(const AValue: Double): TValueSign; overload;4) 函數(shù) Sign(const AValue: Single): TValueSign; overload;5) 函數(shù) Sign(const AValue: Extended): TValueSign; overload;3. 浮點數(shù)比較type TValueRelationship = -1.1;const LessThanVal

32、ue = Low(TValueRelationship); EqualsValue = 0; EqualsValue = High(TValueRelationship);對于CompareFloat 和 SameFloa,如果epsilon沒有給出(或者是0),我們將試圖使用一個合理的基于浮點類型的精度來計算。1) 函數(shù) CompareValue(const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload; A與B比較,根據(jù)大小返回三個常量(LessThanValue(-1)、EqualsValue(0

33、)、c(1)中的一個。2) 函數(shù) CompareValue(const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload;3) 函數(shù) CompareValue(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload;4) 函數(shù) CompareValue(const A, B: Integer): TValueRelationship; overload;5) 函數(shù) CompareValue(const A, B: Int64):

34、TValueRelationship; overload;6) 函數(shù) CompareValue(const A, B:UInt64): TValueRelationship; overload;7) 函數(shù) SameValue(const A, B: Extended; Epsilon: Extended = 0): Boolean; overload; 檢查A和B的誤差是否不超過Epsilon8) 函數(shù) SameValue(const A, B: Double; Epsilon: Double = 0): Boolean; overload;9) 函數(shù) SameValue(const A, B

35、: Single; Epsilon: Single = 0): Boolean; overload;4. 零測試IsZero: 若A為0(非常非常接近于0或者不超過Epsilon)則返回“真”。1) 函數(shù) IsZero(const A: Extended; Epsilon: Extended = 0): Boolean; overload;2) 函數(shù) IsZero(const A: Double; Epsilon: Double = 0): Boolean; overload;3) 函數(shù) IsZero(const A: Single; Epsilon: Single = 0): Boolean

36、; overload;5. 簡單易用的條件函數(shù)根據(jù)Boolean表達(dá)式的值返回兩個可能值中的一個1) 函數(shù) IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload;inline;2) 函數(shù) IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload; inline;3) 函數(shù) IfThen(AValue: Boolean; const ATrue: UInt

37、64; const AFalse: UInt64 = 0): UInt64; overload; inline;4) 函數(shù) IfThen(AValue: Boolean; const ATrue: Single; const AFalse:Single = 0.0):Single; overload; inline;5) 函數(shù) IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload; inline;6) 函數(shù) IfThen(AValue: Boolean; const

38、ATrue: Extended; const AFalse:Extended = 0.0):Extended; overload; inline;6. 各種隨機函數(shù)1) 函數(shù) RandomRange(const AFrom, ATo: Integer): Integer; 在兩個指定極值之間隨機返回一個數(shù)2) 函數(shù) RandomFrom(const AValues: array of Integer): Integer; overload; 從一個數(shù)組中隨機選擇一個數(shù)值。3) 函數(shù) RandomFrom(const AValues: array of Int64): Int64; overlo

39、ad;4) 函數(shù) RandomFrom(const AValues: array of UInt64): UInt64; overload;5) 函數(shù) RandomFrom(const AValues: array of Double): Double; overload;6) 函數(shù) RandomFrom(const AValues: array of Single): Single; overload;7) 函數(shù) RandomFrom(const AValues: array of Extended): Extended; overload;7. 范圍測試函數(shù)測試Avalue是否在Amin

40、和Amax之間1) 函數(shù) InRange(const AValue, AMin, AMax: Integer): Boolean; overload;2) 函數(shù) InRange(const AValue, AMin, AMax: Int64): Boolean; overload;3) 函數(shù) InRange(const AValue, AMin, AMax: UInt64): Boolean; overload;4) 函數(shù) InRange(const AValue, AMin, AMax: Single): Boolean; overload;5) 函數(shù) InRange(const AValu

41、e, AMin, AMax: Double): Boolean; overload;6) 函數(shù) InRange(const AValue, AMin, AMax: Extended): Boolean; overload;8. 范圍切斷函數(shù)迫使AValue處于AMin和AMax之間,若在范圍之外,返回的是數(shù)值自己或上下限。1) 函數(shù) EnsureRange(const AValue, AMin, AMax: Integer): Integer; overload;2) 函數(shù) EnsureRange(const AValue, AMin, AMax: Int64): Int64; overloa

42、d;3) 函數(shù) EnsureRange(const AValue, AMin, AMax: UInt64): UInt64; overload;4) 函數(shù) EnsureRange(const AValue, AMin, AMax: Single): Single; overload;5) 函數(shù) EnsureRange(const AValue, AMin, AMax: Double): Double; overload;6) 函數(shù) EnsureRange(const AValue, AMin, AMax: Extended): Extended; overload;7)9. 16、64位無符號

43、整數(shù)除法一次調(diào)用得出整除結(jié)果和余數(shù)十、 過程 DivMod(Dividend: Cardinal; Divisor: Word; var Result, Remainder: Word); 十一、 過程 DivMod(Dividend:Uint64; Divisor: Uint64; var Result, Remainder: Uint64); 10. 舍入(圓整)到指定數(shù)位或10的冪權(quán)數(shù)。Adigit是要舍入的10的權(quán)數(shù),負(fù)數(shù)表示小數(shù)點后的位數(shù)。例Roundto(123827,3)=124000ADigit 在37 到-37范圍之中,下面是一些示例3 = 103 = 1000 =千分位2

44、= 102 = 100 =百分位1 = 101 = 10 = 十分位-1 = 10-1 = 1/10 = 十分之一-2 = 10-2 = 1/100 = 百分之一-3 = 10-3 = 1/1000 = 千分之一typeTRoundToRange = -37.37;TRoundToEXRangeExtended = -20.20;銀行家舍入法:整數(shù)部分,偶數(shù)舍(2.5=2),奇數(shù)入(1.5=2)1) 函數(shù) RoundTo(const AValue: Extended const ADigit: TRoundToEXRangeExtended): Extended;RoundTo函數(shù)的變量遵循對

45、稱算術(shù)舍入運算法則(如果(實數(shù)的小數(shù)部分)Frac(X) < 0.5則返回X;否則,如果X>0返回X+1,如果X<0返回X-1)。其缺省湊整到1/100。注:浮點舍入模式影響本函數(shù)的行為。2) 函數(shù) SimpleRoundTo(const AValue: Single; const ADigit: TRoundToRange = -2): Single; 算術(shù)舍入法:四舍五入(0.5=1,1.5=2,2.5=3)3) 函數(shù) SimpleRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double

46、; 4) 函數(shù) SimpleRoundTo(const AValue:Extended; const ADigit: TRoundToRange = -2): Extended; 九、 金融函數(shù)遵循Quattro Pro標(biāo)準(zhǔn),參數(shù)約定:金錢收入為正,支出為負(fù) (舉例來說,借款人償還貸款則借款人為負(fù))。利率是每個支付期,11%的年利率,相當(dāng)于每個月(11 / 100) / 12 = 0.00916667type TPaymentTime = (ptEndOfPeriod(期末), ptStartOfPeriod(期初)); 1) 函數(shù) DoubleDecliningBalance(const C

47、ost, Salvage: Extended; Life, Period: Integer): Extended; Double Declining Balance (DDB) 雙倍余額遞減折舊法;Cost資產(chǎn)原值,Salvage 殘值,Life資產(chǎn)壽命年限,Period欲求折舊的期次 計算指定期次Period內(nèi)的折舊值(例如第2年的折舊額)。按下式計算,固定資產(chǎn)折舊年限到期前兩年內(nèi),將資產(chǎn)賬面凈值扣除預(yù)計凈殘值后的凈額平均攤銷以下參數(shù):Rate利率,NPeriods計算期,Payment每期支付款,F(xiàn)utureValue終值,PresentValue現(xiàn)值,PaymentTime每期支付時間,

48、Period欲求的計算期。2) 函數(shù) FutureValue(const Rate: Extended; NPeriods: Integer; const Payment, PresentValue: Extended; PaymentTime: TPaymentTime): Extended; 等額支付終值公式(終值(FVAL))基于固定利率和等額分期付款方式,計算投資的未來終值,PV是計算期開始時的一次性支付的(首付款),可以是0。3) 函數(shù) InterestPayment(const Rate: Extended; Period, NPeriods: Integer; const Pre

49、sentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; 支付利息(IPAYMT)。返回定期償還,固定利率下,第Period期的利息。NPeriods總償還期,PresentValue為首付款,F(xiàn)utureValue為到期時的余額。計算方法(1)利用等額資金回收計算每期應(yīng)付金額A(2)計算每期應(yīng)付的利息和本金4) 函數(shù) InterestRate(NPeriods: Integer; const Payment, PresentValue, FutureValue: Extended; PaymentTime:

50、 TPaymentTime): Extended; 利率(IRATE),返回投資的實際利率。NPeriod總投資期,Payment各期應(yīng)收取的金額,PresentValue開始的總投入現(xiàn)值,PaymentTime最后一次收款后的余額5) 函數(shù) InternalRateOfReturn(const Guess: Extended; const CashFlows: array of Double): Extended; 內(nèi)部收益率(Internal Rate of Return. (IRR))需要現(xiàn)金流數(shù)組,返回一系列現(xiàn)金流的內(nèi)部報酬率,Guess是內(nèi)部報酬率的猜測值(試算值10%)。6) 函數(shù)

51、 NumberOfPeriods(const Rate: Extended; Payment: Extended; const PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; 償還期數(shù) Number of Periods (NPER) 已知每次付款Payment,現(xiàn)值PresentValue或者終值FutureValue,利率Rate,求償還期。7) 函數(shù) NetPresentValue(const Rate: Extended; const CashFlows: array of Doubl

52、e; PaymentTime: TPaymentTime): Extended; 凈現(xiàn)值(Net Present Value. (NPV),需要現(xiàn)金流數(shù)組,給定利率,現(xiàn)金流,分別折算到最開始時的現(xiàn)值之和。8) 函數(shù) Payment(Rate: Extended; NPeriods: Integer; const PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; 等額分期償還額 Payment (PAYMT) 等額資金回收現(xiàn)值公式,等額償債基金終值公式,返回每年應(yīng)償還的金額。9) 函數(shù) Perio

53、dPayment(const Rate: Extended; Period, NPeriods: Integer; const PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended;還款本金 Period Payment (PPAYMT) 返回定期償還,固定利率下,第Period期的本金。10) 函數(shù) PresentValue(const Rate: Extended; NPeriods: Integer; const Payment, FutureValue: Extended; PaymentTi

54、me: TPaymentTime): Extended; 現(xiàn)值 Present Value (PVAL) 等額付款現(xiàn)值公式 11) 函數(shù) SLNDepreciation(const Cost, Salvage: Extended; Life: Integer): Extended;直線折舊法 Straight Line depreciation (SLN) 返回每年折舊額12) 函數(shù) SYDDepreciation(const Cost, Salvage: Extended; Life, Period: Integer): Extended;年限總和折舊法 Sum-of-Years-Digit

55、s depreciation (SYD) 返回第Period期的年折舊額。十、 FPU/SSE 異常/精度/舍入管理以下函數(shù)允許你控制FPU/SSE行為。控制FPU/SSE異常處理,F(xiàn)PU默認(rèn)精度設(shè)置,F(xiàn)PU/SSE怎樣舍入控制.typeTRoundingMode = (rmNearest, rmDown, rmUp, rmTruncate);TFPURoundingMode = type TRoundingMode;TSSERoundingMode = type TRoundingMode;返回當(dāng)前舍入模式1) 函數(shù) GetFPURoundMode: TFPURoundingMode; platform;2) 函數(shù) GetSSERoundMode: TSSERoundingMode; platform;3) 函數(shù) GetRoundMode: TRou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論