.NET中double型数据如何精确求和?

0Modest 2005-03-30 10:00:46
RT.

譬如:一般来讲,0.1+0.2=0.3 。
但在.net中0.1+0.2并不一定会等于0.3,有可能是0.2999999999996之类的数据(据说是因为CPU的浮点运算是不精确运算造成的),造成计算结果不够精确。不知道有什么办法可以精确求和??请各位大大指教!!!
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
0Modest 2005-04-01
  • 打赏
  • 举报
回复
自己写了。效果还凑合,
;)
0Modest 2005-03-31
  • 打赏
  • 举报
回复
问题是不能事先确定小数的位数啊?
galois_godel兄,写这个浮点运算类该注意些什么啊? 俺迷茫ing,请指点一下!
dengsf 2005-03-30
  • 打赏
  • 举报
回复
这不是某种语言的问题,
根源还是 浮点数表示法本身就不是一种精确的数字类型,
比如你上面 十进制的 0.1 就甚至不能用 有限位二进制小数表示出来。

如果需要完全精确,可以像楼上所说的自己用字符串模拟一个类。
但我觉得如果能预先确定需要的小数位数,那只需要在输入结果的时候控制一下输出的小数位数就行了。比如C里的 printf("格式", 数字)......
galois_godel 2005-03-30
  • 打赏
  • 举报
回复
自己写个浮点运算的类吧
newmeteor 2005-03-30
  • 打赏
  • 举报
回复
应该没有办法的吧?
这是由计算机的舍入误差产生的,一般小数在计算机中没有精确表示。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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