【问题标题】:Can 42 be precisely represented as a floating-point?42 可以精确地表示为浮点数吗?
【发布时间】:2016-08-31 19:50:26
【问题描述】:

我了解到 0.1 不能精确地表示为浮点数。教科书的论点是 0.1 不能写成一种基于二进制的科学记数法,尽管我从未确定人们如何证明该论点。与此相关,我现在的问题是

42 可以精确地表示为浮点数吗?

假设我们正在讨论 IEEE-754 binary64 格式。

【问题讨论】:

  • 如果我没记错的话,小数部分的问题是它只能使用 1/2、1/4、1/8、1/16、1/32 的组合来近似, ... , 1/(2^n),不能精确地得到 0.1。但是对于整数,应该没有问题。

标签: floating-point double ieee-754


【解决方案1】:

嗯,一个足够小的整数值以适合浮点的尾数(在您的情况下为42可以精确表示

 42 (decimal) == 101010 (binary)

另一方面,1/10不能精确表示:

 0.1 (decimal) == 0.0001100110011001100... (binary)

因为0.1十进制是二进制周期分数

【讨论】:

猜你喜欢
  • 2010-12-26
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 2021-09-03
  • 1970-01-01
  • 2011-11-17
相关资源
最近更新 更多