在同一函数中,我尝试使用整数,浮点数和舍入,但无法获得此结果。我做错了什么?
目标是:
10 * 2.3 = 123
3 * 2.3 = 36.9
我的代码:
def multi(n1, n2):
x = n1\*2
return x
我尝试了int(n1 * 2)
,但是我得到了123和36。然后我尝试了float(n1 * 2)
,我得到了123.0和36.9。我做错了什么,该如何解决?
问题来源:stackoverflow
您总是将整数与浮点数相乘,这将始终输出浮点数。
如果您希望函数返回的数字为带小数点后1位的浮点数,则可以使用round(num,1)
。
def multi(n1, n2):
x = n1\*2
return round(x, 1)
print(multi(10, 12.3)) # outputs '123.0'
print(multi(3, 12.3)) # outputs '36.9'
为了逃避.0
,您可能可以使用if语句,尽管我看不到它的用法,因为使用浮点数进行计算与整数具有相同的输出(当它们是.0
时)
def multi(n1, n2):
x = n1 * n2
return round(x, 1)
output = []
output.append(multi(10, 12.3)) # outputs '123.0'
output.append(multi(3, 12.3)) # outputs '36.9'
for index, item in enumerate(output):
if int(item) == float(item):
output[index] = int(item)
print(output) # prints [129, 36.9]
这可能会对您有所帮助,但与您匹配的所有事物无关紧要
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。