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