string类型转换成double类型进行相减运算后,再转换成string类型,结果小数点后多了很多位。
这是代码。比如label2显示的是543544.59 label3显示的是469643.02,结果label3显示的是 70901.5699999999999,为什么,该怎么改能让label3显示70901.57呢?
if (Label2.Text != "" && Label3.Text != "")
{
this.Label1.Text = Convert.ToString(Convert.ToDouble(this.Label2.Text) - Convert.ToDouble(this.Label3.Text));
}
else if (Label3.Text == "" && Label2.Text != "")
{
this.Label1.Text = Convert.ToString(Convert.ToDouble(this.Label2.Text) - 0);
}
else if (Label2.Text == "" && Label3.Text != "")
{
this.Label1.Text = Convert.ToString(0 - Convert.ToDouble(this.Label3.Text));
}
else if (Label2.Text == "" && Label3.Text == "")
{
this.Label1.Text ="0";
}
------解决方案--------------------C# code
string.Format("{0:#.00}", 70901.5699999999999);
------解决方案--------------------
用double.ToString效果也和Format差不多但更简洁,
double data=70901.5699999999999;
Label3.Text =data.ToString("f2");
就可以显示70901.57
------解决方案--------------------
double txtDb = 70901.5699999999999;
label3.Text = txtDb.ToString("F2");