python中从float到int的显式类型转换的过程

时间:2013-04-20 22:34:38

标签: python

我正在编写一个程序,允许我计算一个人的年龄 - 包括闰日在内的每一天,以及几个月的不规则天数。 这是一行代码:

number_of_days = (((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1)

我将30.4375除以365.25得到了值12

现在我只需要将整数部分存储在number_of_days中。我该怎么做?

非常感谢帮助!

P.S。所有变量值都是int值

5 个答案:

答案 0 :(得分:4)

您可以使用int

number_of_days = int((((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1))

math.floor

import math

number_of_days = math.floor((((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1))

但是number_of_days将是float,所以我认为第一种解决方案更好。

答案 1 :(得分:3)

只需致电int

number_of_days = int((((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1))

答案 2 :(得分:2)

你能使用地板功能吗?

number_of_days = math.floor((((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1))

答案 3 :(得分:2)

考虑使用round而不是更准确的转换:

import math
int(math.round((((year2 - year1) * 12) + (month2 - month1)) * 30.4375 + (day2 - day1)))

答案 4 :(得分:2)

如果您的目标是计算可以使用日期时间模块的日期之间的天数:

import datetime
birth = datetime.date(1967,11,14)
today = datetime.date.today()

number_of_days = (today - birth).days