如何处理大多数小数部分无法用二进制精确表示的事实?

Let*_*man 5 c# floating-point double decimal

因此,我们知道诸如0.1之类的分数无法在二进制基数中准确表示,这会导致精确的问题(例如此处提到的:格式化C#中输出的双精度数).

而且我们知道我们有十进制表示数字的十进制类型...但问题是,很多数学方法,不支持十进制类型,所以我们将它们转换为double,这再次破坏了数字.

那我们该怎么办?

Rob*_*vey 7

要全面了解执行浮点计算所涉及的挑战,请参阅以下文章:

每个计算机科学家应该知道的关于浮点运算的知识 http://docs.sun.com/source/806-3568/ncg_goldberg.html

  • 你确定那个具体吗? (3认同)

tbi*_*hel 1

您可以移动小数点以使数字为整数,然后执行 64 位整数算术,然后将其移回原位。那么你只需要担心溢出问题。