整数四舍五⼊的两种⽅法——c实现
四舍五⼊是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),结果就是会选择最近的变量进⾏强制类型转换,不会把后⾯的表达式都进⾏强制类型转换。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。