鱼C论坛

 找回密码
 立即注册
查看: 4008|回复: 11

[已解决]我用int变整形,可是不能输入浮点数,会报错,请问是怎么回事

[复制链接]
发表于 2020-8-21 08:41:57 | 显示全部楼层 |阅读模式

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

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

x
我用int变整形,可是不能输入浮点数,会报错,请问是怎么回事
最佳答案
2020-8-21 09:20:28
round() 函数作用就是,返回浮点数x的四舍五入值。

  1. > round( x [, n]  )
  2. 1
复制代码

参数x,n均为数值表达式,返回值为x的四舍五入值。n为保留的小数位数,不加n则只保留x四舍五入后的整数部分。

  1. >>> round(2.3)
  2. 2
  3. >>> round(2.45, 1)
  4. 2.5
复制代码
1597970169(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-21 08:48:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 08:52:49 | 显示全部楼层

int 只能转化纯数字字符串,或者负整数字符串,不能转带其他符号的字符了

比如这里的 5.6 就带有 . 这个字符, int 转化就会报错

你可以用 float 进行转化为浮点型,这样就不会报错了

  1. num1 = float(input('请输入一个数字:'))
  2. print(num1)
复制代码

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

使用道具 举报

发表于 2020-8-21 08:58:08 | 显示全部楼层
非要用int去转化浮点数   脑袋进水没
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 09:01:37 | 显示全部楼层
int()函数的实现中,如果输入的是字符串 会依次做单个字符做字典匹配, 发现非数字(dot)会无法匹配 所以报错 如果输入的是浮点数,会做小数点截断,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-21 09:17:06 | 显示全部楼层
Hello. 发表于 2020-8-21 08:48
https://fishc.com.cn/thread-177397-1-1.html

如果我想要输入的数变成整数,要先用float 再用int吗?如果我想四舍五入要怎么办?编程中输入数字可以输几次方或者分数类型的吗
1597972291(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 09:20:28 | 显示全部楼层    本楼为最佳答案   
round() 函数作用就是,返回浮点数x的四舍五入值。

  1. > round( x [, n]  )
  2. 1
复制代码

参数x,n均为数值表达式,返回值为x的四舍五入值。n为保留的小数位数,不加n则只保留x四舍五入后的整数部分。

  1. >>> round(2.3)
  2. 2
  3. >>> round(2.45, 1)
  4. 2.5
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-21 09:21:31 | 显示全部楼层
wp231957 发表于 2020-8-21 08:58
非要用int去转化浮点数   脑袋进水没

我不用int变整形,我怎么整形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 09:27:43 | 显示全部楼层
In [39]: "%.2f"%2.6555
Out[39]: '2.66'

In [40]: "%.1f"%2.6555
Out[40]: '2.7'

In [41]: "%.0f"%2.6555
Out[41]: '3'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 09:30:07 | 显示全部楼层
In [43]: "{:.2f}".format(2.6555)
Out[43]: '2.66'

In [44]: "{:.0f}".format(2.6555)
Out[44]: '3'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 09:30:51 | 显示全部楼层
married 发表于 2020-8-21 09:17
如果我想要输入的数变成整数,要先用float 再用int吗?如果我想四舍五入要怎么办?编程中输入数字可以输 ...


想四舍五入就这样,加上 0.5 就行:
  1. num1 = input('请输入一个数字:')
  2. num1 = int(float(num1)+0.5)
  3. print(num1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-21 11:17:38 | 显示全部楼层
married 发表于 2020-8-21 09:17
如果我想要输入的数变成整数,要先用float 再用int吗?如果我想四舍五入要怎么办?编程中输入数字可以输 ...

是的
要四舍五入的话把int改成round
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 21:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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