C++程序默认为四舍五入
C++ program is rounding by default
我目前正在开发一个C++程序,其中我有一个bankAccount类,需要计算利息。问题是,我的函数将我的数字四舍五入为整数,即使我使用浮点作为变量类型。所以如果我有这样的代码:
float BankAccount::CalculateInterest(int Time)
{
float thing;
thing = (967 / 365);
return thing;
}
当它应该等于2.649315068时,它最终等于2.000000。
有什么想法吗?我以前在那里有我的兴趣方程,不管怎样,结果总是1.0000000,所以我把它作为一个测试,我看到它四舍五入到了"下限"。
谢谢你的帮助!
这不是四舍五入。
你正在除以两个整数,结果将是一个整数。
您可以通过简单地将".0"添加到这两个数字中,或者将它们明确定义为浮点值来解决此问题。
967
和365
是整数,因此使用整数除法并丢弃余数。设一为浮点数,将进行浮点除法运算:967 / 365.0
。
或者:
float thing = 967; // integer converted to float during assignment
thing /= 365; // division of float and converted integer
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 如何使用默认参数等选择模板专业化
- 具有默认模板参数的多态类的模板推导失败
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 初始化具有非默认构造函数的std::数组项的更好方法
- 何时提供默认参数作为模板参数
- 是默认情况下分配给char数组常量的值
- 具有默认值的引用获取函数
- 具有默认模板类型的默认构造函数的类型推导
- 当给定默认值时,为什么此模板参数推导失败
- 修改 VS Code 中的默认C++代码段
- 声明默认的模板化函数
- 在除法中不需要四舍五入
- 将const引用参数初始化为默认参数会导致悬空引用吗
- 如何使用非默认构造函数实例化模板化类
- 如何修复带有 clang 的参数'args'缺少默认参数的问题?
- 从具有默认值的部分指定模板类继承时发生SWIG错误,具有不带默认值的正向声明
- C++程序默认为四舍五入