[VB.Net]取小數點X位數、無條件捨去


取小數點幾位數,這個比較簡單也比較常用

使用Format函式
Dim number As Double = 1234.56789
MsgBox(Format(number, "##.##"))

上列顯示出來的結果會是1234.57
表示說小數點後面的位數會依照規定取兩位數並做四捨五入的運算,而整數部分則有多少跑多少
但是又會出現一個Bug
Dim number As Double = 0.56789
MsgBox(Format(number, "##.##"))

此時結果會是.57,而非0.57。
所以在此要修正成下列程式碼

Dim number As Double = 0.56789
MsgBox(Format(number, "0.##"))

上面的程式碼當寫Format(number, "0#.##")整數部分最小會是兩位,不足兩位的會補0。

==========================================================================================
接下來講無條件捨去,目前我會用的方法
若要取小數兩位,則先乘上100然後取整數,在除100。這樣除完後會剛好小數點兩位,而沒有其他餘數。

VB.Net取整數的函式為Fix

Dim number As Double = 1234.5678
MsgBox(Fix(number * 100) / 100)

這樣產生出來的結果為1234.56




留言

這個網誌中的熱門文章

[Excel]將圖片放置於儲存格中

[軟體]AUTOCAD關於開啟圖面時,字型找不到,而要手動指定成 chineset.shx 字型檔問題

[MS SQL]查詢資料庫中每個資料表之列數與資料表大小(容量)資訊。Get size of all tables in database