‘壹’ C语言怎么四舍五入
利用取整。
比如 四舍五入到千分位,可以
(int)(x*1000+0.5)/1000.0
十分位(int)(x*10+0.5)/10.0
其他类似,只改变其中倍数的值即可。
‘贰’ c语言中如何进行四舍五入,求详细解释!!谢谢!
方法一:
#include<stdio.h>
int main()
{
double d1,d2,d3;
d1=-3.1415926;
d2=(int)(d1*10+0.5)*0.1;
printf("d1=%f,保留一位小数的结果为:%.1f ",d1,d2);
d3=(int)(d1*1000+0.5)*0.001;
printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);
总结四舍五入保留n为小数
(int)(x*10的n次方+0.5)*10的负n次方;
其次这个方法对负数无效;如果非要用可以先取正数部分算,最后加上负号
}
方法二:
使用round()函数。
#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}
(2)c语言怎样让数据四舍五入扩展阅读:
C语言编写注意事项:
1、%运算符不能应用与float或double类型。
2、char类型转换为int型时, 无法判断它是signed还是unsigned.这样其结果有可能为负数, 因此转换时尽量指定signed和unsigned限制符。
3、++i与i++不同之处: ++i是先+1在使用, i++是先使用i在递加1。
4、三元运算符"?:" 第一个表达式的括号不是必须的,但是由于三元表达式的优先级非常低,我们还是将第一个表达式用()括起便于阅读和理解。
5、C语言中可以使用递归 (即函数调用自身函数), 其不节省储存器开销也不加快执行速度, 只是使程序紧凑便于理解。
‘叁’ c语言的关于 : 对一个double型数据进行四舍五入运算
对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。
1
将double类型数据,强制转换为int类型,会强制截取整数部分。
比如double
a
=
1.23;
(int)a的值就是1。
2
由于是强制取整,所以即使是1.9转为int后,同样是1,这与四舍五入的要求不符。所以可以转换一下算法,做(int)(a+0.5)就可以实现四舍五入到整数的效果了。
3
要实现四舍五入到某一位,可以先乘一个值,将该位移动到个位,取整后,再除上这个值,将其移动回去。
比如将double
a
=
1.2345四舍五入保留2位小数,可以写作
(int)(a*100+0.5)/100.0。
‘肆’ c语言中有没有进行四舍五入的函数
四舍五入算法:如果要求精确到小数点后面的第n位,则需要对第n+1位进行运算。方法是将该小数乘以10的n+1次方后加5,然后除以10并强制转换变量类型为长整型,再将该数除以10的n次方,同时强制转换类型为浮点型。x0dx0a代码实现如下:x0dx0along t;/*定义长整型变量t*/x0dx0at=(h*10n+1+5)/10;/*对h进行操作,得到值浮点型,t取值时取整数部分。10n+1为要扩大的倍数*/x0dx0ah=(float)t/10n; /*将t缩小10n倍,并转换成浮点型*/
‘伍’ C语言输入一个double类型数据,要求将该数保留一位小数,第二位进行四舍五入,并将结果输出
在C语言中输入一个double类型数据,将该数保留一位小数,第二位进行四舍五入,并将结果输出,这是很容易实现的,因为它自带的格式输出函数printf就可以轻松实现这一功能的:
double x;
scanf("%lf",&x);
printf("%.2f\n",x);
‘陆’ C语言问题,这里怎么实现四舍五入的啊
假定一个数字x值是10.456,那么保留两位,第三位四舍五入的方法就是先将x乘以100,变成1045.6,然后加上0.5,得到1046.1,然后去除1046.1的小数部分(也就是强制转为int),得到1046,再用1046除以100.0就得到最终的10.46,写出来也就是
x=(int)(x*100+0.5)/100.0
‘柒’ C语言如何实现浮点数的四舍五入
可以写个函数
int sheru(double i){
double a = i - (int) i ;//求此浮点数的小数部分
if(a < 0.5)
return int(i);//如果小数部分小于0.5.则返回整数部分.double强制转换int会去掉小数位
else
return int(i)+1;//反之,加一
}