Python中关于str转浮点数的问题
初学者求助,在一个判断输入数字为正负0的作业中,遇到了输入的内容为字符串类型,不能直接判断大小。随后我用float转化了一下就可以了。能够判断出是正负0了。
num = input("请输入一个数字!:")
num = float(num)
if num > 0:
print("这是一个正数")
elif num < 0:
print("这是一个负数")
else:
print("这是零")
但是float并没有达到我想要的效果,我想在输出中显示输入的内容。
例如:1. 输入 '6.0' 输出 '6.0 是正数'
2. 输入 '6.000' 输出 '6.000 是正数'
如何解决这个精度问题呢,而且是根据输入变化的这种。
感谢! 傻孩子,你 float 后用一个新变量报存,输出的时候用输入的 str 不就行啦 你这都不确定输入的是什么东西,怎么就敢直接强行转换了?这里要加判断或try一下,要保持原样就直接格式化输出
num = input("请输入一个数字:")
try:
n = float(num)
if n > 0:
print(f"{num}是正数")
elif n == 0:
print(f"{num}是0")
else:
print(f"{num}是负数")
except:
print("输入错误") num = input("请输入一个数字!:")
# 直接使用字符串进行比较,而不是转换为浮点数
if num > '0':
print(f"{num} 是正数")
elif num < '0':
print(f"{num} 是负数")
else:
print("这是零") 用两个变量接收
while True:
num_in = input("请输入一个数字!:")
num = float(num_in)
if num > 0:
print(f"{num_in} 这是一个正数")
elif num < 0:
print(f"{num_in} 这是一个负数")
else:
print("这是零")
HackYike 发表于 2024-3-24 23:34
你这都不确定输入的是什么东西,怎么就敢直接强行转换了?这里要加判断或try一下,要保持原样就直接格式化 ...
谢谢!目前是学校非计算机专业,刚刚学到这里。 怀中猫 发表于 2024-3-24 23:34
num = input("请输入一个数字!:")
# 直接使用字符串进行比较,而不是转换为 ...
学到了,字符串也能比较大小? YuYu798 发表于 2024-3-24 23:41
用两个变量接收
while True:
num_in = input("请输入一个数字!:")
学到了,感谢!
你可以使用 python 里面的 f-string来达到你想要的效果 本帖最后由 爱飞的猫 于 2024-3-25 07:46 编辑
teddymvs 发表于 2024-3-24 23:57
学到了,字符串也能比较大小?
按字符比较的,不符合直觉。
```
>>> '1' > '2'
False
>>> '2' > '10'
True
>>> '10' > '20'
False
>>> '100' > '20'
False
>>> '300' > '20'
True
```
页:
[1]
2