整数四舍五入的两种方法——c实现

本文介绍C语言中实现四舍五入的两种方法:使用条件表达式和利用浮点数特点。通过实例演示如何对浮点数进行正确四舍五入,强调了强制类型转换的正确使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四舍五入是c语言编程经常使用的函数。这里记录用整数输入进行四舍五入的判断方法。

1、使用条件表达式

实际上只需要观察四舍五入之后的余数,如果余数大于0.5,则进1,反之保留整数。这里可以用条件表达式。

假设输入的int整数a,int整数b是a四舍五入之后的整数。相应程序如下:

int b=(a-2*(a/2))>=1?a/2+1:a/2;	//四舍五入

上面方法易于理解,使用条件表达式使得代码精简。

2、利用浮点数的特点

还可以利用浮点数取整的特点,及如果浮点数的小数部分是[0,0.5),取整后只保留整数,如果将其加上0.5,取整后仍然还是保留的整数;如果小数部分是[0.5,0.99……],取整后仍是整数,但是加上0.5之后,再取整则达到的整数将比原来的大1。

因此可以采用下面的方法

double b;
b=int(b+0.5);

例如:

#include <iostream>
using namespace std;
int main(){
	double a;	cin>>a;
	cout<<int(a+0.5);
	return 0;
}

这里要注意强制转换使用需要注意的地方:最好使用“类型+(强制转换的变量表达式)”。

例如下面两个是不一样的:

int a=2.5,b=2.4,a1,a2,b1,b2;
a1=(int)a+0.5;
a2=int(a+0.5);
b1=(int)b+0.5;
b2=int(b+0.5);

/*
a1=2.5
a2=3
b1=2.5
b2=2
*/

如果只对强制转换的目标类型加括号,如上面的(int),结果就是会选择最近的变量进行强制类型转换,不会把后面的表达式都进行强制类型转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉大秦少游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值