向上和向下舍入数字 C++
Rounding up and down a number C++
我试图让我的程序分别向上和向下舍入一个数字。
例如,如果数字是 3.6
,我的程序假设将四舍五入到最接近的数字,如果数字是 3.4
,它将向下舍入到 3。
我尝试使用 ceil
库来获取 3 个项目的平均值。
results = ceil((marks1 + marks2 + marks3)/3)
但是,ceil
只是将数字向下舍入,而不是向上舍入。
我偶然发现了 1 个算法
var roundedVal = Math.round(origVal*20)/20;
但我还是想不出一些问题的公式。
你需要的功能叫做round,信不信由你。
ceil
四舍五入,顺便说一句。也就是说,到最接近的较大整数。 floor
四舍五入。
std::ceil
四舍五入到最接近的整数
std::floor
四舍五入到最接近的整数
std::round
执行您期望的行为
如果这不能满足您的需要,请给出一个用例和编号!
std::round
可能就是您要找的人。但是,请记住它 returns 是一个浮点数。您可能想尝试 lround
或 llround
来获得 long 或 long long (C++ 11) 的结果。
您不需要在 C 或 C++ 中舍入的函数。您可以使用一个简单的技巧。添加 0.5,然后转换为整数。无论如何,这可能是全面的。
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);
i1是3,i2是5,大家可以自己验证一下。
在 c++ 中,通过包含 cmath 库,我们可以使用各种函数来向上或向下舍入值。
std::trunc
这只是截去小数部分,即小数点后的数字,不管小数是多少。
std::ceil
这用于向上取整到最接近的整数值。
std::floor
这用于向下舍入到最接近的整数值。
std::round
这将舍入到最接近的整数值,即可以向上舍入也可以向下舍入。
我试图让我的程序分别向上和向下舍入一个数字。
例如,如果数字是 3.6
,我的程序假设将四舍五入到最接近的数字,如果数字是 3.4
,它将向下舍入到 3。
我尝试使用 ceil
库来获取 3 个项目的平均值。
results = ceil((marks1 + marks2 + marks3)/3)
但是,ceil
只是将数字向下舍入,而不是向上舍入。
我偶然发现了 1 个算法
var roundedVal = Math.round(origVal*20)/20;
但我还是想不出一些问题的公式。
你需要的功能叫做round,信不信由你。
ceil
四舍五入,顺便说一句。也就是说,到最接近的较大整数。 floor
四舍五入。
std::ceil
四舍五入到最接近的整数
std::floor
四舍五入到最接近的整数
std::round
执行您期望的行为
如果这不能满足您的需要,请给出一个用例和编号!
std::round
可能就是您要找的人。但是,请记住它 returns 是一个浮点数。您可能想尝试 lround
或 llround
来获得 long 或 long long (C++ 11) 的结果。
您不需要在 C 或 C++ 中舍入的函数。您可以使用一个简单的技巧。添加 0.5,然后转换为整数。无论如何,这可能是全面的。
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);
i1是3,i2是5,大家可以自己验证一下。
在 c++ 中,通过包含 cmath 库,我们可以使用各种函数来向上或向下舍入值。
std::trunc
这只是截去小数部分,即小数点后的数字,不管小数是多少。
std::ceil
这用于向上取整到最接近的整数值。
std::floor
这用于向下舍入到最接近的整数值。
std::round
这将舍入到最接近的整数值,即可以向上舍入也可以向下舍入。