理解 binary float point

2021年6月14日 / 20次阅读 / Last Modified 2021年6月14日
数值计算

很奇怪的一个topic,对吧。。

其实,我们日常生活中使用的浮点数计算,或者说小数计算,都是 decimal float point。而计算机使用的浮点数计算,是 binary float point。

decimal float point 计算的特点是,以1/10为单位进行细分,比如0.1是对1的细分,可以有0.2,0.3,0.5......等等,将1的长度,等分成10分。binary float point,由于表达受限,它的计算特点是,以1/2为单位进行细分。这就是两个不同的float point在计算时的重要区别!

虽然在有限位数的情况下计算,不管是decimal还是binary,都有精度问题,但是这两者的精度问题的表现是不一样的。当我们需要满足日常 decimal float point 的计算要求时,就要注意了:

>>> from decimal import *
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1')
Decimal('0.3')
>>>
>>> 0.1+0.1+0.1
0.30000000000000004

Python标准库中提供的decimal模块,可以辅助我们在程序中,按照 decimal float point 的方式进行计算!

-- EOF --

本文链接:https://www.pynote.net/archives/3725

留言区

《理解 binary float point》有1条留言

您的电子邮箱地址不会被公开。 必填项已用*标注

  • 麦新杰

    You need to read it: https://docs.python.org/3/tutorial/floatingpoint.html [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top