double相加的问题

kevinkevin 2004-01-18 11:02:41
double a=0;
a+=Convert.ToDouble(this.textBox1.Text);
a+=Convert.ToDouble(this.textBox2.Text);

this.textBox1.Text是1.4 this.textBox2.Text是1.4
最后得到的值a为2.800000000001

为什么?
...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
巍巍清风 2004-01-18
  • 打赏
  • 举报
回复
浮点数精度比较高,但不准确,有一些因二进制与十进制之间转化的小误差,按你需要的位数四舍五入,或者把它强制转化为decimal。
shenanigan 2004-01-18
  • 打赏
  • 举报
回复
private void Button1_Click(object sender, System.EventArgs e)
{
double a=0;
a = Convert.ToDouble(this.TextBox1.Text) + Convert.ToDouble(this.TextBox2.Text);
this.Button1.Text = a.ToString();
}

这样做,出来的值就是2.8啊。
CMIC 2004-01-18
  • 打赏
  • 举报
回复
double 关键字表示存储 64 位浮点值
你可以用decimal
decimal a=0;
a+=Convert.ToDecimal(this.textBox1.Text);
a+=Convert.ToDecimal(this.textBox2.Text);
HawkLoveFree 2004-01-18
  • 打赏
  • 举报
回复
这个可能要熟悉位操作的高级程序员来解答吧
kevinkevin 2004-01-18
  • 打赏
  • 举报
回复
谢谢,a转为字符串时候就2.8了,道理还不太清楚啊!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧