鱼C论坛

 找回密码
 立即注册
查看: 5385|回复: 7

关于input输入小数转换整数的问题

[复制链接]
发表于 2017-7-20 14:39:43 | 显示全部楼层 |阅读模式

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

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

x
今天遇到一个小需求,就是输入一个数字,然后转换成16进制
输入字符串的先不考虑,但目前发现输入小数,比如 3.3 就会报错
  1. a=input('请输入一个数字进行16进制的转换:')
  2. a=int(a)
  3. print('%s的16进制是 %s'%(a,hex(a)))
复制代码

网上搜了一下,说要先转成浮点数
但直接调用
  1. int(3.3)
复制代码
却能直接显示正确的结果,求解这是为啥?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-20 14:57:18 | 显示全部楼层
  1. a=input('请输入一个数字进行16进制的转换:')
  2. a=int(float(a))
  3. print('%s的16进制是 %s' % (a,hex(a)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-20 15:04:03 | 显示全部楼层

谢谢
我知道你的这个方法
但我的问题是
  1. 为什么 int(3.3)可以
复制代码
  1. 但如果用input输入小数后,再用int来转换就不行了?
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-20 15:23:16 | 显示全部楼层
portcc 发表于 2017-7-20 15:04
谢谢
我知道你的这个方法
但我的问题是

因为3.3是 float

a=input('请输入一个数字进行16进制的转换:')
a='3.3'  不是 a=3.3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-20 16:08:24 | 显示全部楼层
input返回的都是字符串~
  1. >>> int('3.3')
  2. Traceback (most recent call last):
  3.   File "<pyshell#37>", line 1, in <module>
  4.     int('3.3')
  5. ValueError: invalid literal for int() with base 10: '3.3'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-20 16:56:33 | 显示全部楼层
portcc 发表于 2017-7-20 15:04
谢谢
我知道你的这个方法
但我的问题是

一个是字符串一个是浮点数,跨了两级呢,要先从字符串转成浮点数然后从浮点数舍去小数不分转成整型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-20 16:57:28 | 显示全部楼层
ba21 发表于 2017-7-20 15:23
因为3.3是 float

a=input('请输入一个数字进行16进制的转换:')

所以,int(a)是进行数据类型转换啊,把字符串转换成整数啊。
使用input输入整数实际上得到的也是字符串,既然都是字符串,3和3.3有啥区别呢?
但是......为啥输入整数的时候,int(a)就能工作
而输入小数的时候,int(a)就报错了?
我一直在问这个问题啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-20 17:01:30 | 显示全部楼层
portcc 发表于 2017-7-20 16:57
所以,int(a)是进行数据类型转换啊,把字符串转换成整数啊。
使用input输入整数实际上得到的也是字符串 ...


看图,这能没区别吗?

2017-07-20_165933.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-22 12:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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