上取整,下取整,四舍五入

ops/2025/3/20 11:16:28/

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. 自定义四舍五入到指定小数位

如果需要将浮点数四舍五入到指定的小数位数,可以使用以下方法:

方法:
  1. 将数乘以 (n 是保留的小数位数)。

  2. 使用 std::round 四舍五入。

  3. 将结果除以 

示例代码:
#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::ceilstd::ceil(3.14) → 4
下取整std::floorstd::floor(3.14) → 3
四舍五入std::roundstd::round(3.14) → 3
自定义小数位四舍五入乘 10n10n 后 std::roundroundToDecimal(3.14159, 2) → 3.14
强制类型转换下取整static_cast<int>static_cast<int>(3.14) → 3
自定义上取整判断小数部分并加 1customCeil(3.14) → 4

http://www.ppmy.cn/ops/167266.html

相关文章

Linux理论知识:路径的认识

文章目录 Linux 路径认识入门指南1. Linux 文件系统简介2. 什么是路径2.1 绝对路径2.2 相对路径 3. 为什么路径很重要&#xff1f;4. 常见命令与路径操作4.1 pwd —— 显示当前工作目录4.2 cd —— 切换目录4.3 ls —— 列出目录内容4.4 ln —— 创建链接 5. 类比与总结6. 小结…

嵌入式八股ARM篇

前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入…

【css酷炫效果】纯CSS实现波浪形分割线

【css酷炫效果】纯CSS实现波浪形分割线 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492023 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&…

唯品会 APP api_sign 逆向

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 版本7.45 native层方面。r…

函数闭包的学习

作用&#xff1a;可以保存外部函数的变量 形成条件&#xff1a; 1 函数嵌套 2 内部函数用了外部函数的变量或者参数 3 外部函数返回了内部函数&#xff08;是返函数名&#xff0c;不带括号&#xff09; 这个使用了外部函数变量的内部函数称为闭包。 口诀&#xff1a;函数嵌…

如何用Deepseek制作流程图?

使用Deepseek制作流程图&#xff0c;本质上是让AI根据你的需求&#xff0c;生成相关流程图的代码&#xff0c;然后在流程图编辑器中渲染&#xff0c;类似于Python一样&#xff0c;ChatGPT可以生成代码&#xff0c;但仍需在IDE中执行。 你知道绘制流程图最高效的工具是什么吗&a…

优化 Java 数据结构选择与使用,提升程序性能与可维护性

引言 在软件开发中&#xff0c;数据结构的选择是影响程序性能、内存使用以及代码可维护性的关键因素之一。Java 作为一门广泛使用的编程语言&#xff0c;提供了丰富的内置数据结构&#xff0c;如数组、链表、栈、队列、树、图以及集合框架中的各种接口实现&#xff08;如 List…

2020年蓝桥杯第十一届CC++大学B组(第二次)真题及代码

目录 1A&#xff1a;门牌制作&#xff08;填空5分_拆分数字&#xff09; 2B&#xff1a;既约分数&#xff08;填空5分_gcd&#xff09; 3C&#xff1a;蛇形填数&#xff08;填空10分_找规律&#xff09; 4D&#xff1a;跑步锻炼&#xff08;填空10分_模拟&#xff09; 5E&…