C#浮点数问题

tanyi2002 2019-04-19 10:03:38
一个dataGridView控件,里面存储带有两位小数位的数字,转换成Double类型后与一个整数相减,却得到很多位的小数位,如5.41000000000003,这种情况我该怎么处理呢?
...全文
244 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztltgg 2019-04-22
  • 打赏
  • 举报
回复
引用 5 楼 tanyi2002 的回复:
用Decimal代替Double后,问题解决,谢谢。
都用Decimal代替了,还一分也不给我?虽然这个方法治标不治本,在一般情况下也许用格式化更合理,但看你的需求用Decimal也许是更好的一劳永逸的解决方案
tanyi2002 2019-04-22
  • 打赏
  • 举报
回复
引用 6 楼 hztltgg 的回复:
引用 5 楼 tanyi2002 的回复:
用Decimal代替Double后,问题解决,谢谢。
都用Decimal代替了,还一分也不给我?虽然这个方法治标不治本,在一般情况下也许用格式化更合理,但看你的需求用Decimal也许是更好的一劳永逸的解决方案
不好意思,我给错分了,贴已结了,怎么追加分给你呢。
  • 打赏
  • 举报
回复
引用 2 楼 stherix 的回复:
自定义下显示的格式就行了 比如ToString("F2")
是这样的! 总有人搞不清楚输出格式化跟浮点数本身的区别。如果你只是需要在输出(到图形界面或者程序接口)为字符串时进行格式化,就不能说成什么“改数字”本身。
  • 打赏
  • 举报
回复
计算机浮点数误差是天生的。任何数学计算都要有误差概念。
stherix 2019-04-19
  • 打赏
  • 举报
回复
自定义下显示的格式就行了 比如ToString("F2")
hztltgg 2019-04-19
  • 打赏
  • 举报
回复
用Decimal类型代替Double咯
tanyi2002 2019-04-19
  • 打赏
  • 举报
回复
用Decimal代替Double后,问题解决,谢谢。

110,534

社区成员

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

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

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