如何获得没有小数位的数字?

时间:2016-10-23 20:09:38

标签: python decimal

tunnid = int(input("Sisestage oma töötundide arv ühes nädalas: "))
tasu = int(input("Sisestage oma tunnitasu: "))

if tunnid <= 40:

    print("Teie nädalapalk on " + str(tunnid*tasu))

else:

    print("Teie nädalapalk on " + str(tunnid*tasu*1.5))

如果我乘以60 * 10,否则我应该得到900,但程序给我900.0 所以我的问题是,如何从答案中删除这个.0,我需要在代码中更改什么?

p.s我只是一个初学者,所以请不要判断:)

5 个答案:

答案 0 :(得分:3)

只需使用int转换号码:

print('Teie nädalapalk on {}'.format(int(tunnid * tasu * 1.5)))

或者,您可以使用format迷你语言:

print('Teie nädalapalk on {:.0f}'.format(tunnid * tasu * 1.5))

.0f告诉数字被截断为0小数(即整数表示)

答案 1 :(得分:1)

最简单的方法是将float值输入到int。例如:

>>> x = 100.0
>>> x = int(x)
>>> x
100

因此,在您的代码中,您应该这样做:

print("Teie nädalapalk on " + str(int(tunnid*tasu)))
# Note: "str(tunnid*tasu)" replaced with "str(int(tunnid*tasu))"

答案 2 :(得分:0)

基本上你想让答案为整数,如果我是正确的你可以做到 将其类型转换为整数:

print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5)))

它应该准确地给出你想要的东西。 有关typecast float to int或反之亦然的更多信息,请参阅此处Peterbe.com

答案 3 :(得分:0)

添加类型转换操作以将float转换为int。而不是str(tunnid*tasu*1.5)使用str(int(tunnid*tasu*1.5))。 但即使产品不是整数,这也会删除小数部分。 如果你想要处理这种情况,你将不得不添加额外的支票。

if tunnid*tasu*1.5 - int(tunnid*tasu*1.5) > 1e-10: print("Teie nädalapalk on " + str(tunnid*tasu*1.5)) else print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5)))

1e-10是一个非常小的数字,只是为了检查小数部分是否为非零。你可以进一步减少它。

答案 4 :(得分:0)

>>> num = 900.0  # tunnid * tasu * 1.5
>>> int(num) if num == int(num) else num
900
>>> num = 900.6  # tunnid * tasu * 1.5
>>> int(num) if num == int(num) else num
900.6