鱼C论坛

 找回密码
 立即注册
查看: 744|回复: 9

[已解决]关于取整的问题

[复制链接]
发表于 2018-12-20 20:47:20 | 显示全部楼层 |阅读模式

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

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

x
刚开始学习python的菜鸟一只遇到个问题
    我想写一个随便输入一个浮点数据类型的数字,然后保留两位小数输出
number=input()
number=number*100
number=int(number)
number=number/100
print(number)
为什么总是报错  ,跪求各位大佬临幸小弟的问题
最佳答案
2018-12-20 21:00:06
  1. number=float(input())
  2. number=number*100
  3. number=int(number)
  4. number=number/100
  5. print(number)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-20 20:55:06 | 显示全部楼层
input()输入得到的是一个字符串类型的数据
你第二行程序相当于把你输入的这个字符串拼接了100次,比如你输入0.2 执行完第二行,此时的num='0.20.20.20.20.2......' 有100个0.2
你第三行再用int去把num变为整型,肯定不对啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-20 20:57:07 | 显示全部楼层
大神教我那这个程序应该怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-20 20:57:17 | 显示全部楼层
本帖最后由 sunrise085 于 2018-12-20 20:59 编辑

因为input()函数得到的是字符串,所以在执行第二行语句的时候,是讲字符串重复100次,例如,输入2.35,得到的number='2.35',而不是number=2.35,因此执行第二句之后得到的number='2.352.352.352.35……2.352.35'(共重复100次)而此时的这个字符串是不能被转化为整型数据的,所以执行第三行程序的时候就出错了。
  1. number=float(input())
  2. number=number*100
  3. number=int(number)
  4. number=number/100
  5. print(number)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-20 20:58:27 | 显示全部楼层
大神那这个程序应该怎么写~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-20 21:00:06 | 显示全部楼层    本楼为最佳答案   
  1. number=float(input())
  2. number=number*100
  3. number=int(number)
  4. number=number/100
  5. print(number)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-20 21:01:05 | 显示全部楼层
牛逼  膜拜  厉害了我的神!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-20 21:02:06 | 显示全部楼层
帅的一塌糊涂 发表于 2018-12-20 20:58
大神那这个程序应该怎么写~~~

刚刚写的这个程序,也只是对输入的浮点数有效,若是输入整型,转化为浮点数也只有一位小数了。若输入的是字符串肯定还是会出错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-20 21:17:01 | 显示全部楼层
sunrise085 发表于 2018-12-20 20:57
因为input()函数得到的是字符串,所以在执行第二行语句的时候,是讲字符串重复100次,例如,输入2.35,得到 ...

大神我想在问你一个问题
number=int(input())
number=number*100
number=int(number)
number=number/100
print(number)
我把float改成int为什么就不行呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-20 21:47:41 | 显示全部楼层
帅的一塌糊涂 发表于 2018-12-20 21:17
大神我想在问你一个问题
number=int(input())
number=number*100

input函数的返回值是字符串,若你输入的是float,也是将之转为字符串,例如,输入 1.2,input函数返回值是字符串 '1.2' ,外面在使用int转为整型,而字符串'1.2'是不能转为字符串的,当然会出错啦!你可以去查看一下int的帮助文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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