2025-03-15 学习记录--C/C++-C语言 %.0f的使用和round函数(实现四舍五入)

C语言 %.0f的使用 ⭐️

%.0f 在格式化输出时会 对浮点数 进行四舍五入,并保留 0 位小数

  • %f 是格式化输出浮点数的占位符。
  • .0 表示保留 0 位小数。
  • 在保留 0 位小数时,printf 会对小数部分进行四舍五入,然后只输出整数部分。


示例 1: 🌰

c 复制代码
double x = 12.49;
printf("%.0f\n", x);  // 输出 12

12.49 的小数部分是 0.49,小于 0.5,因此四舍五入后输出 12

示例 2: 🌰

c 复制代码
double x = 12.50;
printf("%.0f\n", x);  // 输出 13

12.50 的小数部分是 0.50,等于 0.5,因此四舍五入后输出 13

示例 3: 🌰

c 复制代码
double x = 12.51;
printf("%.0f\n", x);  // 输出 13

12.51 的小数部分是 0.51,大于 0.5,因此四舍五入后输出 13

注意事项 ⭐️

1、四舍五入规则:🍭

小数部分 小于 0.5 时,向下舍入

小数部分 大于或等于 0.5 时,向上舍入

2、负数的情况:🍭

对于负数,四舍五入规则同样适用。

c 复制代码
double x = -12.49;
printf("%.0f\n", x);  // 输出 -12
c 复制代码
double x = -12.50;
printf("%.0f\n", x);  // 输出 -13

3、精度问题:🍭

浮点数在计算机中是以二进制形式存储的,可能存在精度问题。

c 复制代码
double x = 0.5;
printf("%.0f\n", x);  // 输出 0(可能因为精度问题导致四舍五入错误)

如果需要更精确的四舍五入,可以使用 round 函数:

c 复制代码
#include <math.h>
double x = 0.5;
printf("%.0f\n", round(x));  // 输出 1

总结 ⭐️

  • %.0f 会对浮点数进行四舍五入,并保留 0 位小数。
  • 如果需要更精确的四舍五入,可以使用 round 函数。
相关推荐
DKPT4 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
学不动CV了6 小时前
ARM单片机启动流程(二)(详细解析)
c语言·arm开发·stm32·单片机·51单片机
好好研究7 小时前
学习栈和队列的插入和删除操作
数据结构·学习
新中地GIS开发老师8 小时前
新发布:26考研院校和专业大纲
学习·考研·arcgis·大学生·遥感·gis开发·地理信息科学
猫猫的小茶馆8 小时前
【STM32】通用定时器基本原理
c语言·stm32·单片机·嵌入式硬件·mcu·51单片机
SH11HF8 小时前
小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
学习·云计算
Frank学习路上9 小时前
【IOS】XCode创建firstapp并运行(成为IOS开发者)
开发语言·学习·ios·cocoa·xcode
pumpkin845149 小时前
Rust 调用 C 函数的 FFI
c语言·算法·rust
Chef_Chen10 小时前
从0开始学习计算机视觉--Day07--神经网络
神经网络·学习·计算机视觉
2401_8582861110 小时前
125.【C语言】数据结构之归并排序递归解法
c语言·开发语言·数据结构·算法·排序算法·归并排序