2016-08-03 110 views
1

如何将它保留为decmail而不将其转换为字符串。我不希望有cahnge它作为我使用的值更改事件触发和文本十进制舍入,但保留十进制

if (!IsPostBack) 
{   
    clientearningscic.Value = (decimal) _dal.getiandEData(_myuser.id, "clientearningscic") ; 
    otherincomeonecic.Text = _dal.getiandEData(_myuser.id, "otherincomethreecic").ToString("n2"); 

} 
    clientearningscic.ValueChanged += sumEarnings; 

任何想法会帮我配发

private void sumEarnings(object sender, EventArgs e) 
{ 
     int total = Convert.ToInt16(clientearningscic.Text) + Convert.ToInt16(partnerearningscic.Text) + Convert.ToInt16(incomesupportcic.Text) + Convert.ToInt16(childtaxcreditcic.Text) + Convert.ToInt16(workingtaxcreditcic.Text) + Convert.ToInt16(pensioncic.Text) + Convert.ToInt16(childbenefitcic.Text) + Convert.ToInt16(chidlmaintenancecic.Text) + Convert.ToInt16(nondependantscontributioncic.Text) + Convert.ToInt16(otherincomeonecic.Text) + Convert.ToInt16(otherincometwocic.Text) + Convert.ToInt16(otherincomethreecic.Text); 

     lblTotalIcome.Text = total.ToString(); 

     calcTotal(); 

}  
+0

不要将其保存为'int'但作为一个'double'代替。整数只支持整数,而'double'支持浮点数。 – Bobby

+2

您是否尝试了Math.Round(),该函数将小数值和小数作为输入。 –

+0

请接受答案 –

回答

0

您正在保存它作为一个整数。整数支持从-2,147,483,648到2,147,483,647的整数。但他们不支持十进制值。

要使用十进制值,您不能使用int,但可以使用floatdouble

2

将文本值转换为Int16数据类型将不允许任何小数。尝试将它们转换为double,decimal或float。

要将值舍入到一定数量的小数,使用

Math.Round(decimal val, # of decimals);