默认情况下,C ++程序是舍入的

时间:2015-11-18 01:29:41

标签: c++ rounding

我目前正在开发一个C ++程序,我有一个bankAccount类,我需要计算兴趣。问题是,我的函数将我的数字四舍五入到整数,即使我使用float作为我的变量类型。所以,如果我有这样的代码:

float BankAccount::CalculateInterest(int Time)
{
    float thing;
    thing = (967 / 365);
    return thing;
}

最终等于2.00000000,等于2.649315068。

有什么想法吗?我之前有兴趣等式,结果总是1.00000000无论如何,所以我把它作为测试,我看到它正在向“地板”四舍五入。

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

这不是四舍五入。

您正在划分两个整数,结果将是一个整数。

您只需在两个数字中添加“.0”或明确将它们定义为浮点数即可解决此问题。

答案 1 :(得分:3)

967365是整数,因此使用整数除法,其余的被丢弃。使一个浮点数和浮点除法将完成:967 / 365.0

可替换地:

float thing = 967;  // integer converted to float during assignment
thing /= 365;  // division of float and converted integer