上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
从计算结果可以看出,结果也都是浮点型的。