1

我正在使用“Stroustrup 的 C++ 编程、原理和练习”学习编程。我必须将一个人的年龄读成双倍并以几个月为单位显示。现在我的困惑是当一个人输入一个年龄时,例如:22.5,应该是考虑 22 年零 5 个月或 22 年 6 个月,因为它是 0.5?如何将 22 和 5 与双精度数分开为两个不同的整数?

4

2 回答 2

1

想想看:你问的是年龄。所以 22.5 年应该被认为是 22 年零 6 个月。

于 2012-04-17T09:23:10.807 回答
1

22.5 年等于 22 年 + 0.5 年。0.5 年 = 6 个月。

这应该适合你:

int years = floor(age);         // get the integer part of age -- that's years
double frac = age - years;      // get the fractional part of age
int months = round(12. * frac); // convert the fractional part into # of months
于 2012-04-17T09:23:21.847 回答