1. 上取整(Ceiling)
上取整是指将一个数向上舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::ceil
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::ceilint main() {double num = 3.14;double result = std::ceil(num); // 上取整std::cout << "Ceiling of " << num << " is: " << result << std::endl; // 输出 4return 0;
}
2. 下取整(Floor)
下取整是指将一个数向下舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::floor
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::floorint main() {double num = 3.14;double result = std::floor(num); // 下取整std::cout << "Floor of " << num << " is: " << result << std::endl; // 输出 3return 0;
}
3. 四舍五入(Rounding)
四舍五入是指将一个数舍入到最接近的整数。
方法:
-
使用
<cmath>
库中的std::round
函数。
示例代码:
#include <iostream>
#include <cmath> // 包含 std::roundint main() {double num = 3.14;double result = std::round(num); // 四舍五入std::cout << "Rounded value of " << num << " is: " << result << std::endl; // 输出 3return 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::rounddouble 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.14return 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; // 输出 3return 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; // 输出 4return 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 |