Lok*_*oko 11 python floating-point
所以我正在阅读这个名为"学习Python第四版"的PDF教程.现在我找到了一个我不理解的部分,因为我几乎是Python的初学者.我在谈论这部分:

现在我没有得到第一个例子的解释.它确实说:
It turns out that there are two ways to print every object: with full precision(as in the first result shown here)
但这是怎么回事with full precision?
它可能只是很容易解释文本中的python程序员,但我似乎没有得到它.
kwa*_*ord 13
这不是Python问题,而是浮点数性质的问题.事实证明,计算机不能代表数字.谁知道?
如果你有时间,我建议阅读每个计算机科学家应该知道的关于浮点运算的内容.
现在,至于实际的Python方面,每个对象都有一个被调用的方法__str__和一个被调用的方法__repr__.这些应该产生在各种情况下显示的字符串.如果您在任何对象上使用内置函数repr或str函数,或者在字符串格式中使用"%r"或"%s"格式,您将看到这些.在交互式提示符下评估某些内容时repr,默认情况下会得到.当您传递某些内容时print,str默认情况下会获得.
浮点数对象__repr__的定义方式是以最大精度(至少可以达到十进制)来表示它们,而它们__str__的定义方式使得它们看起来更像是你想要向用户显示的内容.用户不想知道浮点数不是实数,因此它不会向它们显示额外的精度.
基本上,计算机的浮点计算存在舍入误差。所以如果你执行1.*1000./1000.,你最终可能会得到1.0000004类似的结果。这是计算机存储在内存中的内容。但是,您可能不希望看到计算结果为 1.0000004。因此,当您打印结果时,计算机会进行舍入,您将得到简单的1。但您必须知道,它不是计算机内存中的真实值 - 它只是实际浮点数的舒适可视化。
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |