上取整,下取整,四舍五入
1. 上取整(Ceiling)
上取整是指将一个数向上舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::ceil
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::ceil
int main() {
double num = 3.14;
double result = std::ceil(num); // 上取整
std::cout << "Ceiling of " << num << " is: " << result << std::endl; // 输出 4
return 0;
}
2. 下取整(Floor)
下取整是指将一个数向下舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::floor
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::floor
int main() {
double num = 3.14;
double result = std::floor(num); // 下取整
std::cout << "Floor of " << num << " is: " << result << std::endl; // 输出 3
return 0;
}
3. 四舍五入(Rounding)
四舍五入是指将一个数舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::round
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::round
int main() {
double num = 3.14;
double result = std::round(num); // 四舍五入
std::cout << "Rounded value of " << num << " is: " << result << std::endl; // 输出 3
return 0;
}
4. 使用整数运算
如果你只需要对整数进行四舍五入,可以使用整数运算。
#include <iostream>
int main() {
double num = 3.6;
int rounded = static_cast<int>(num + 0.5);
std::cout << "Rounded value: " << rounded << std::endl; // 输出 4
5. 自定义四舍五入到指定小数位
如果需要将浮点数四舍五入到指定的小数位数,可以使用以下方法:
方法:
-
将数乘以
(n 是保留的小数位数)。
-
使用
std::round
四舍五入。 -
将结果除以
。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::round
double roundToDecimal(double num, int decimalPlaces) {
double factor = std::pow(10, decimalPlaces);
return std::round(num * factor) / factor;
}
int main() {
double num = 3.14159;
double result = roundToDecimal(num, 2); // 四舍五入到 2 位小数
std::cout << "Rounded value of " << num << " is: " << result << std::endl; // 输出 3.14
return 0;
}
6. 强制类型转换实现下取整
如果不需要使用 <cmath>
库,可以通过强制类型转换实现下取整。
方法:
-
将浮点数强制转换为整数类型(如
int
)。
示例代码:
#include <iostream>
int main() {
double num = 3.14;
int result = static_cast<int>(num); // 强制类型转换实现下取整
std::cout << "Floor of " << num << " is: " << result << std::endl; // 输出 3
return 0;
}
7. 上取整的替代方法
如果不想使用 std::ceil
,可以通过以下方法实现上取整:
方法:
-
如果数是整数,直接返回;否则,返回整数部分加 1。
示例代码:
#include <iostream>
int customCeil(double num) {
int intPart = static_cast<int>(num);
if (num == intPart) {
return intPart;
} else {
return intPart + 1;
}
}
int main() {
double num = 3.14;
int result = customCeil(num); // 自定义上取整
std::cout << "Ceiling of " << num << " is: " << result << std::endl; // 输出 4
return 0;
}
总结
操作 | 方法 | 示例代码 |
---|---|---|
上取整 | std::ceil | std::ceil(3.14) → 4 |
下取整 | std::floor | std::floor(3.14) → 3 |
四舍五入 | std::round | std::round(3.14) → 3 |
自定义小数位四舍五入 | 乘 10n10n 后 std::round | roundToDecimal(3.14159, 2) → 3.14 |
强制类型转换下取整 | static_cast<int> | static_cast<int>(3.14) → 3 |
自定义上取整 | 判断小数部分并加 1 | customCeil(3.14) → 4 |
原文地址:https://blog.csdn.net/2301_81354767/article/details/146384585
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/592667.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/592667.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!