鱼C论坛

 找回密码
 立即注册
查看: 1154|回复: 4

[已解决]初学几天,关于四舍五入的问题

[复制链接]
发表于 2017-10-12 15:50:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写个小程序,输入数字就自动四舍五入

代码如下:

  1. a = input('请输入数字:')
  2. while a.isalpha():
  3.     a = input('请输入数字:')
  4. b = int(a + 0.5)
  5. print(b)
复制代码



请问那里有误呢?
最佳答案
2017-10-12 21:06:55
本帖最后由 宫保鸡丁丁 于 2017-10-12 21:27 编辑

input()这个函数是返回字符串的,如你在界面输入的是5,则a得到的值是'5'而不是5,
正确的方法是:
  1. b = int(int(a) + 0.5) #强制将字符串转换成整型
复制代码

这时候只能输入整数,所以考虑到可能会有小数,建议用以下方法:
  1. b = int(float(a) + 0.5) #float()为浮点 型
复制代码

希望楼主能采纳呐,还有什么疑问可以提出来


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-12 16:04:00 | 显示全部楼层
b = int(float(a) + 0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 16:17:26 | 显示全部楼层
int(a + 0.5)
这条语句会先执行括号里面的,此时a还是str类型,无法和float类型的5相加
改为int(float(a) + 0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 16:21:33 | 显示全部楼层
你这里面a是str类型的,在 b= int(a + 0.5) 中要把a的类型改一下才行,不然不同类型的+ 会报错
  改成这样 b = int(float(a) +0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 21:06:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 宫保鸡丁丁 于 2017-10-12 21:27 编辑

input()这个函数是返回字符串的,如你在界面输入的是5,则a得到的值是'5'而不是5,
正确的方法是:
  1. b = int(int(a) + 0.5) #强制将字符串转换成整型
复制代码

这时候只能输入整数,所以考虑到可能会有小数,建议用以下方法:
  1. b = int(float(a) + 0.5) #float()为浮点 型
复制代码

希望楼主能采纳呐,还有什么疑问可以提出来


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 08:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表