社区
C#
帖子详情
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
为什么?
...全文
228
5
打赏
收藏
double相加的问题
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 为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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了,道理还不太清楚啊!
double
相加
出现多位小数的
问题
在进行
double
或float数值
相加
时,可能会遇到精度损失的
问题
,导致结果出现多位小数。为解决这一
问题
,建议使用BigDecimal进行高精度运算,以避免精度丢失。
java
double
相加
_java中两
double
相加
精度丢失
问题
及解决方法
这篇博客探讨了在Java中
double
类型数值
相加
时出现的精度丢失
问题
,例如0.1+0.2不等于0.3。原因是
double
无法精确表示某些十进制小数。解决方案是使用BigDecimal类,特别是通过String构造方法来确保精度,如new BigDecimal(0.1)。文章建议在处理金钱等需要精确计算的场景时,应使用BigDecimal并避免直接使用
double
。
double
转换为int以及浮点型
相加
损失精度
问题
探讨了在支付模块业务中使用
double
类型导致的小数
相加
精度损失
问题
,分析了计算机存储浮点数原理,提供了使用BigDecimal和整数运算两种解决方案。
解决
double
相加
精度
问题
采用BigDecimal解决
博客展示了使用Java解决
double
相加
精度
问题
的方法。通过引入BigDecimal类,将
double
类型数据转换为BigDecimal类型进行加法运算,还介绍了乘法、减法、除法运算,以及处理无限小数的方式,最后将结果转回
double
类型。
关于
double
类型数字
相加
位数发生变化的
问题
本文探讨了计算机内部存储缺陷导致的
double
类型数值
相加
出现的精度
问题
,并提出使用BigDecimal进行精确计算的方法。
C#
111,129
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章