python 奇怪的情况,是我某一节没听好吗?
如图,b的值为什么会这样?要怎么才正常?? b的值是正常的,因为计算机本来就存在误差,无法“完全正确”
但是并不影响实际的计算和编程逻辑 我记得以前学c语言的时候也有这个,刚才测试了一下,比如b=1/3然后你再*3,结果在c里面是0.99999999而不是1.(用python计算是1),就像是整形和浮点型之间的转换,会有一点不同。传统整数除法会舍去小数部分,返回一个整型。如果操作数之一是浮点型,则执行真正的除法。
比如: >>> 5/0.3
16.666666666666668
>>> 3/float(5)
0.6
建议这类计算设置保留位数 问题出在计算机进行计算时,需要转化为二进制,1.8转化的时候误差就产生了,所以是正常现象 BngThea 发表于 2018-3-1 12:42
b的值是正常的,因为计算机本来就存在误差,无法“完全正确”
但是并不影响实际的计算和编程逻辑
那我要怎么能令b的值只保留小数后两位 checkily 发表于 2018-3-1 15:07
那我要怎么能令b的值只保留小数后两位
无法设置,你可以在输出时设置格式
比如"%.2f"%b
页:
[1]