我必须在SQL Server 2005中设置3位小数。我可以只从模型部分设置它.But在sql server中,Salary的数据类型是十进制的。
当我设置为
时public decimal Salary { get; set; }
它希望保存数据库,如21000.000而不是21000.如果我输入30000.75,那么它将被保存到30000.750。
答案 0 :(得分:2)
解决问题的最简单方法是将Salary
数据类型设置为decimal(18, 3)
。因此,即使您插入值30000.75123
,也只会保存前三个十进制数字 - 30000.750
。如果插入整数21000
,则数据库中的值将为21000.000
。
答案 1 :(得分:0)
即使我遇到这个问题,在发送到数据库之前你可以做的一件事就是你必须将值转换成3个小数位。你可以通过 -
来做到这一点txtsalary.Text = String.Format("{0:0.000}", Salary);
或
decimal Salary ;
if (Decimal.TryParse(txtsalary.Text, out Salary )) // Returns true on valid input, on top of converting your string to decimal.
{
// ... code that is doing stuff with the decimal value ...
txtsalary.Text = String.Format("{0:0.000}", Salary );
}
else
{
// do your error handling here.
}