取整 保留小數等數字處理方法

2022-07-29 13:54:25 字數 1176 閱讀 6174

問題描述:

後台資料型別為decimal a,在前台頁面中顯示時需要顯示為整數。

我的做法是convert.toint32(a),這樣做是強制把內容轉換為整數,改變了資料本來的意義。

最終做法是math.round(a,0),將a的小數值捨入為指定精度。

1.先看math.round()方法,是將值捨入到最接近的整數或指定的小數字數。

msdn上可以看到有這些過載的方法。

math.round(3.46, 1); //returns 3.5. msdn上給出的示例

math.round(3.55, 1); //returns 3.6 我加的乙個示例

可以看到這個「捨入」不是四捨五入,而是銀行家捨入:四捨六入五取偶法。規則是當捨去位的數值小於5時,直接捨去該位;當捨去位的數值大於等於6時,在捨去該位的同時向前位進一;當捨去位的數值等於5時,如果前位數值為奇,則在捨去該位的同時向前位進一,如果前位數值為偶,則直接捨去該位。

2.再看 convert.toint32(value d)方法,是一種強制型別轉換。

如果 value 為兩個整數中間的數字,則返回二者中的偶數,即 4.5 轉換為 4,而 5.5 轉換為 6,同樣也是銀行家捨入。

總結:同樣是對decimal取整,二者區別是:前者只是將小數點捨入到指定精度,沒有改變資料的型別,而後者進行強制轉換改變了資料的型別。

提到了強制型別轉換為整數,(int)方法和convert.toint32(),可以看到如下區別:

(int)方法直接擷取整數部分,而convert.toint32()採取銀行家捨入方式。

另還有int.parse(string s)方法,引數必須為string型別,而且該string型別的引數,在實際意義上也應為int型別,

取整 保留小數等數字處理方法

問題描述 後台資料型別為decimal a,在前台頁面中顯示時需要顯示為整數。我的做法是convert.toint32 a 這樣做是強制把內容轉換為整數,改變了資料本來的意義。最終做法是math.round a,0 將a的小數值捨入為指定精度。1.先看math.round 方法,是將值捨入到最接近的...

金額,有效值等保留小數字處理

關於保留精度和小數字的處理 1 decimalformat df new decimalformat 00 會原樣輸出,0代表保留幾位小數 decimalformat normalamountformat new decimalformat 0.0000 千分符 保留四位小數 df.format n...

Python小數保留位數及取整

1.int 向下取整 內建函式 n 3.75 print int n 3 n 3.25 print int n 32.round 四捨五入 內建函式 n 3.75 print round n 4 n 3.25 print round n 33.floor 向下取整 math模組函式 import m...