round用于舍入给定的数字,该数字可以是float或double。它将舍入函数中提供的参数返回最接近的整数值,中间情况舍入为零。代替round(),也可以使用std::round(。使用的头文件-> cmath,ctgmath
用法:
参数: x, value to be rounded double round (double x); float round (float x); long double round (long double x); double round (T x); // additional overloads for integral types 返回: The value of x rounded to the nearest integral (as a floating-point value).
// C++ code to demonstrate the
// use of round() function
#include <cmath>
#include <iostream>
using namespace std;
// Driver program
int main()
{
// initializing value
double x = 12.5, y = 13.3, z = 14.8;
// Displaying the nearest values
// of x, y and z
cout << "Nearest value of x:" << round(x) << "\n";
cout << "Nearest value of y:" << round(y) << "\n";
cout << "Nearest value of z:" << round(z) << "\n";
// For lround
cout << "lround(-0.0) = " << lround(-0.0) << "\n";
cout << "lround(2.3) = " << lround(2.3) << "\n";
cout << "lround(2.5) = " << lround(2.5) << "\n";
cout << "lround(2.7) = " << lround(2.7) << "\n";
cout << "lround(-2.3) = " << lround(-2.3) << "\n";
cout << "lround(-2.5) = " << lround(-2.5) << "\n";
cout << "lround(-2.7) = " << lround(-2.7) << "\n";
// For llround
cout << "llround(-0.01234) = " << llround(-0.01234) << "\n";
cout << "llround(2.3563) = " << llround(2.3563) << "\n";
cout << "llround(2.555) = " << llround(2.555) << "\n";
cout << "llround(2.7896) = " << llround(2.7896) << "\n";
cout << "llround(-2.323) = " << llround(-2.323) << "\n";
cout << "llround(-2.5258) = " << llround(-2.5258) << "\n";
cout << "llround(-2.71236) = " << llround(-2.71236) << "\n";
return 0;
}
输出:
Nearest value of x:13 Nearest value of y:13 Nearest value of z:15 lround(-0.0) = 0 lround(2.3) = 2 lround(2.5) = 3 lround(2.7) = 3 lround(-2.3) = -2 lround(-2.5) = -3 lround(-2.7) = -3 llround(-0.01234) = 0 llround(2.3563) = 2 llround(2.555) = 3 llround(2.7896) = 3 llround(-2.323) = -2 llround(-2.5258) = -3 llround(-2.71236) = -3
在这里,在上面的程序中,我们刚刚计算了给定float或double值的最接近整数值。
已被准确计算。
Possible Applications
- 处理分数和小数之间的不匹配:舍入数字的一种用法是将1/3转换为十进制时,将所有三个都缩短到小数点右边。在大多数情况下,当我们需要使用十进制的1/3时,我们将使用四舍五入的数字0.33或0.333。当与小数点后的小数位数不完全相同时,我们通常只使用小数点右边的两位或三位数。
- 改变相乘结果:25、75和0.25、0.75的乘积之间会有所不同,我们得到0.875。我们从小数点右边的2位数字开始,最后以4结尾。很多时候,我们会将结果四舍五入到0.19。
// C+++ code for above explanation #include <cmath> #include <iostream> using namespace std; // Driver program int main() { // Initializing values for int type long int a1 = 25, b1 = 30; // Initializing values for double type double a2 = .25, b2 = .30; long int ans_1 = (a1 * b1); double ans_2 = (a2 * b2); // Rounded result for both cout << "From first multiplication:" << round(ans_1) << "\n"; cout << "From second multiplication:" << round(ans_2) << "\n"; return 0; }
输出:
From first multiplication:750 From second multiplication:0
- 快速计算:假设需要快速计算,我们取一个近似值,然后计算最接近的答案。例如,经过任何计算,我们得出的答案为298.78,四舍五入后得出的绝对答案为300。
- 得到估计:有时您想舍入整数而不是十进制数。通常,您需要舍入到10、100、1、000或百万的最接近的倍数。例如,在2006年,人口普查部门确定纽约市的人口为8、214、426。这个数字很难记住,如果我们说纽约市的人口为800万,这是一个很好的估计,因为它没有确切的数字没有任何实际的区别。
参考:www.mathworksheetcenter.com,www.cplusplus.com
相关用法
注:本文由纯净天空筛选整理自himanshu_300大神的英文原创作品 round() in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。