程序员如何在添加1/3、1/9等分数时消除这些分数中的错误

  • 本文关键字:错误 添加 程序员 math
  • 更新时间 :
  • 英文 :


我的问题很简单。

1/3=0.33333…..(经常性(1/3+1/3+1/3=1(在纯数学中(

实际上

1/3+1/3+1/3=0.99999….(经常性(

我的问题是

1] 。程序员如何消除这个错误?

2] 。这个错误消除命名为什么吗?

3] 。1/3+1/3+1/3=0.9999….是正确的。1/3+1/3+1/+3=1是无逻辑的。无逻辑运算是如何在编程中实现的?

这个问题是在math.stackexchange的数学社区中提出的,如果你是一名数学家和程序员,请试着回答这个问题。

https://math.stackexchange.com/questions/4391241/why-fractions-like-1-3-1-9-is-recurring-and-how-to-stop-this-recurring

程序员如何消除此错误?

您不能完全消除浮点不精确性,但您可以通过多种方式来减轻它:

  • 四舍五入到合理的精度(小数位数(
  • 不要直接比较浮点值;总是将绝对差值与极小的公差进行比较
  • 确保将显示的小数位数限制在合理的范围内
  • 只有当这种不精确性无关紧要时(比如测量温度或距离等非离散事物时(,才使用浮点值。当十进制表示法至关重要时(如计算货币金额时(,请使用decimal或等效类型

最新更新