married 发表于 2020-8-21 08:41:57

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

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

Hello. 发表于 2020-8-21 08:48:14

https://fishc.com.cn/thread-177397-1-1.html

Twilight6 发表于 2020-8-21 08:52:49


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

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

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

num1 = float(input('请输入一个数字:'))
print(num1)

wp231957 发表于 2020-8-21 08:58:08

非要用int去转化浮点数   脑袋进水没

tttxiaoz 发表于 2020-8-21 09:01:37

int()函数的实现中,如果输入的是字符串 会依次做单个字符做字典匹配, 发现非数字(dot)会无法匹配 所以报错 如果输入的是浮点数,会做小数点截断,

married 发表于 2020-8-21 09:17:06

Hello. 发表于 2020-8-21 08:48
https://fishc.com.cn/thread-177397-1-1.html

如果我想要输入的数变成整数,要先用float 再用int吗?如果我想四舍五入要怎么办?编程中输入数字可以输几次方或者分数类型的吗

Hello. 发表于 2020-8-21 09:20:28

round() 函数作用就是,返回浮点数x的四舍五入值。

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

>>> round(2.3)
2
>>> round(2.45, 1)
2.5

married 发表于 2020-8-21 09:21:31

wp231957 发表于 2020-8-21 08:58
非要用int去转化浮点数   脑袋进水没

{:5_90:}我不用int变整形,我怎么整形

tttxiaoz 发表于 2020-8-21 09:27:43

In : "%.2f"%2.6555
Out: '2.66'

In : "%.1f"%2.6555
Out: '2.7'

In : "%.0f"%2.6555
Out: '3'

tttxiaoz 发表于 2020-8-21 09:30:07

In : "{:.2f}".format(2.6555)
Out: '2.66'

In : "{:.0f}".format(2.6555)
Out: '3'

Twilight6 发表于 2020-8-21 09:30:51

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

想四舍五入就这样,加上 0.5 就行:
num1 = input('请输入一个数字:')
num1 = int(float(num1)+0.5)
print(num1)

lhgzbxhz 发表于 2020-8-21 11:17:38

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

是的
要四舍五入的话把int改成round
页: [1]
查看完整版本: 我用int变整形,可是不能输入浮点数,会报错,请问是怎么回事