Python 3.8从零开始学
上QQ阅读APP看书,第一时间看更新

2.2.2 浮点型

浮点类型(float)一般称为浮点型,由整数部分与小数部分组成,也可以使用科学计数法表示。

比如,小娜还在静静思考中,班长突然打断了她的思维,问小娜在服务区的“Number”店购物总共花了多少钱。小娜理了一下思绪,每瓶Caffe水5.3元,一共62瓶,Caffe水总共多少钱呢?在交互模式下输入:

>>> 5.3*62
328.59999999999997

计算得到的结果怎么这么长?小娜有点想不明白了,不过冷静一思考,原来是这么一回事:整型和浮点型在计算机内部存储的方式不同,整型运算永远是精确的,而浮点型运算可能会有四舍五入的误差。对该结果做四舍五入,保留一位小数,结果是328.6,就没有偏差了。

小娜:“班长,328.6元。”

班长:“这么便宜,是所有的吗?”

小娜:“是Caffe水的。”

班长:“那总共多少钱?”

Keras能量棒每根6.5元,一共31根,在交互模式输入:

>>> 6.5*31
201.5

Caffe水加Keras能量棒,再加上TensorFlow糖的30元,加起来的总额如下:

>>> 5.3*62+6.5*31+30
560.0999999999999

计算结果又出现了前面浮点计算的问题,应该这么输入:

>>> 328.6+201.5+30
560.1

这个计算结果就好看多了,也符合了预期结果形式。

小娜把购物花费的总额560.1元报告给了班长。

小娜又开始思考了,浮点数相乘的结果这么奇怪,那浮点数除法计算的结果会是怎样的呢?小娜立刻进行实践,在交互模式下输入:

>>> 155/31.0
5.0

得到的计算结果和155除以31的计算结果是一样的,那156除以31.0得到的计算结果又是怎样的呢?在交互模式下输入:

>>> 156/31.0
5.032258064516129

得到的计算结果和156除以31也是一样的。那做地板除和取模的结果又是怎样的呢?在交互模式下输入:

>>> 156 // 31.0
5.0
>>> 156 % 31.0
1.0

从计算结果可以看出,结果也都是浮点型的。