为什么输入4.5,但结果是4,而不是5呢?

为什么输入4.5,但结果是4,而不是5呢?

a = float(input())
print("{:.0f}".format(a))

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-08-28 11:48:54

同学,你好。当用format去格式化数据的时候,遵循以下规则:

1、当保留若干位小数时,该数字后面的数小于5时,该数字舍去;数字大于5时,则进位;

2、当数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。

例:

a = 4.53
b = 4.29
c = 4.25
d = 4.35
e = 4.156
print("{:.1f}".format(a))   # 4.5
print("{:.1f}".format(b))   # 4.3
print("{:.1f}".format(c))   # 4.2
print("{:.1f}".format(d))   # 4.3
print("{:.1f}".format(e))   # 4.2

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 慕哥5272408 #1
    按照解释的内容,第9行,输入4.35,那应该输出4.4啊,为什么还是输出4.3
    2019-09-01 20:50:27
  • 好帮手慕美 回复 提问者 慕哥5272408 #2
    同学,你好。这里涉及到python的浮点数存储了,在存储浮点数时,需要转换成二进制存储,当再转换成十进制浮点数时,会存在误差,因此在保留小数的时候出现误差。祝学习愉快~~~~
    2019-09-03 11:01:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师