Decimal為SQL Server、MySql等數據庫的一種數據類型,不屬於浮點數類型,可以在定義時划定整數部分以及小數部分的位數。
好處:使用精確小數類型不僅能夠保證數據計算更為精確,還可以節省儲存空間
在C#中 decimal 表示128 位的數據類型。與double類型相比有更高的精度和更小的類型
百分比使用 decimal(4,2) 就可以
“4” 指的是整數部分加小數部分的總長度,也即插入的數字整數部分不能超過“10-2”位,否則不能成功插入,會報超出范圍的錯誤。
“2”表示小數部分的位數,如果插入的值未指定小數部分或者小數部分不足兩位則會自動補到2位小數,若插入的值小數部分超過了2為則會發生截斷,截取前2位小數。
這使 .net

注意:在前台輸入的是文本,而在數據庫中保存的是 decimal 類型 ,所以要轉換一下

代碼
<td width="20%" align="right" bgcolor="#F5F5F5">請假時長:</td> <td align="left" bgcolor="#FFFFFF" width="30%"> <asp:TextBox MaxLength="9" ID="tbLeaveTime" runat="server"></asp:TextBox> </td>
if (this.tbLeaveTime.Text.Trim() == string.Empty) { mdkaoqinginfo.LeaveTime = 0; } else { mdkaoqinginfo.LeaveTime = Convert.ToDecimal(this.tbLeaveTime.Text);//請假時長 }
2、對獲取decimal 類型的數字,保留小數點后一位,及使是6.9999 ,需要的是6.9
這就需要將其轉換為字符串,通過截取之后獲取的值在轉換為 decimal 類型
比如:在一個無返回值得的方法中傳遞一個 decimal 類型的參數 testd1
//將decimal 類型的數字轉換為 string類型,要是直接去 小數點后一位 會自動進行四舍五入所以,TOString 的時候要注意
string s = testd1.ToString("0.00000");
// 對字符串進行截取獲取小數點后一位
string ss = s.Substring(0, s.IndexOf(".") + 2);
//在將其轉換為數字
testd1= Convert.ToDecimal(ss);
