利用VB.NET Format函數實現四舍五入功能
VB.NET經過長時間的發展,很多用戶都很了解VB.NET了,這里我發表一下個人理解,和大家討論討論。在VB.NET要做到四舍五入的功能應該用VB.NET Format這個函數,用CInt或CLng都只能取到整數部分,而用VB.NET Format函數可以取到你所指定的小數位數。
副程式:
- PublicFunctionRound(numAsVariant,nAsLong)AsString
- Round=Format(num,IIf(n>0,"0."&String(n,"0"),"0"))
- EndFunction
#T#叁數說明:num:欲四舍五入的數值。因為欲四舍五入的數值可能是Double或Single或是其它資料型態,所以這里把num宣告成Variant;如果把num宣告成Double,而欲四舍五入的數值是Single型態,就會出現資料型態不符合的錯誤;但是把num宣告成Variant則可避免這種錯誤,或是使用傳值呼叫(ByVal)也可避免這種錯誤。其實我不確定這個觀念是否正確,如果有誤請來信指正,謝謝。n:取到小數點以下第n位。Round函數傳回的是一個字串資料。
范例:
- PrivateSubCommand1_Click()
- DimaAsDouble
- a=1234.56789
- Debug.PrintFix(a)
- Debug.PrintInt(a)
- Debug.PrintCInt(a)
- Debug.PrintCLng(a)
- Debug.PrintRound(a,0)
- Debug.PrintRound(a,3)
- EndSub
執行後在VB的即時運算視窗出現以下結果:
- 1234
- 1234
- 1235
- 1235
- 1235
- 1234.568
Fix和Int是屬於無條件舍去,但是他們兩者在處理負數的部分仍有些微差異,請自行叁閱VBHelp;CInt和CLng也有四舍五入的功能,但是只能取到整數部分;Format則可以四舍五入到你所指定的小數位數。有一點值得一提的是,VB.NET Format的第二個叁數使用"0"和"#"的差異:
- format(123.4,".000")輸出123.400
- format(123.4,".###")輸出123.4
也就是說:第二個叁數使用"0"的,會自動補上多馀的0,有時候為了編排好看會希望這麼做;使用"#"的則不會自動補上0。