' 發展單位:風禹科技驗證有限公司 ' 撰寫人:鄭子璉(Tzu-Lien, Cheng, 璉璉) ,成大水博肄,微軟最有價值專家 ' Web: http://tlcheng.twbbs.org/TLCheng/ E-Mail: qvb3377@ms5.hinet.net ' -------------------------------------------------------------------------------------- Module modMathTools Public Enum enuStepGauss SG_Normal = 0 SG_Lower = 1 SG_Upper = 2 End Enum Public Function MyRound(ByVal dValue As Double, Optional ByVal digits As Integer = 0) As Double Dim dScale As Double = 10 ^ digits Return CDbl(Int(dValue * dScale + 0.5)) / dScale End Function Public Function CValue(ByVal vSource As Object, Optional ByVal BiosValue As Double = 1, Optional ByVal wFlags As enuStepGauss = enuStepGauss.SG_Normal, Optional ByVal BaseValue As Double = 0) As Double Dim tCValue As Double vSource -= BaseValue If BiosValue <> 0 Then Dim reBios As Double = 1 / BiosValue tCValue = StepGauss(vSource * reBios, wFlags) * BiosValue End If tCValue += BaseValue Return tCValue End Function Public Function StepGauss(ByVal vSource As Object, Optional ByVal wFlags As enuStepGauss = enuStepGauss.SG_Normal) As Long Dim tValue As Long Select Case wFlags Case enuStepGauss.SG_Normal tValue = CLng(vSource) Case enuStepGauss.SG_Lower tValue = Int(vSource) Case enuStepGauss.SG_Upper tValue = -Int(-vSource) End Select Return tValue End Function End Module