四舍五入算法 C语言练习

如题:函数fun的功能是将传入的1234.5678在fun函数中分别四舍五入并保留3位小数,2位小数,1位小数,结果在该函数中打印。
//为表述方便,定义 位数 和 看位数 两个概念
//看位数 是指四舍五入时,舍去的那个数所在的 位数,如 1234.5678 保留3位小数,则8就是看位数,其他的数都是位数

#include<stdio.h>
#include<stdlib.h>

void fun(double h){
	int num  = 0;					//变为整数的数
	int resNum = 0;					//四舍五入后的整数
	double res = 0.0;				//结果数

	//原数:1234.5678
	
	//保留3位,应输出 1234.568000
	printf("要保留3位小数操作的数为:\t %lf\n",h);	
	
	//转换为整数,将看位数所在的位数也转换为整数。所以,保留3位就是*10000
	num = h * 10000;
	//使用看位数将整数四舍五入,得到的是整数
	resNum = (num + 5) /10;			//整数 + 5 ,也就是看位数+5,结果是整数或将进一位或不进位,整数都是多了一个看位数,/10将看位数所在的位数舍去,得到四舍五入后的数1234568
	
	res = resNum/1000.0;			//将结果保留3位小数,四舍五入后的整数1234568 /1000(或者1000.0)就是将后3个位数转换为了小数
	printf("结果是:%37lf\n",res);


	printf("******************************************************************\n");


	//原数:1234.5678
	//保留2位小数,应输出 1234.570000
	printf("要保留2位小数操作的数为:\t %lf\n",h);	

	num = h * 1000;					//将看位数所在的位数的位变成整数
	resNum = (num + 5) /10;			//四舍五入,舍弃看位数所在的位数
	res = resNum / 100.0;			//保留两位小数,将整数的后两位转换为小数
	printf("结果是:%37lf\n",res);

	printf("******************************************************************\n");
	
	//原数:1234.5678
	//保留1位小数,应输出 1234.600000
	printf("要保留2位小数操作的数为:\t %lf\n",h);	
	
	//合为一条语句
	res = ((int)(h * 100)+ 5)/10 /10.0;

	printf("结果是:%37f\n",res);

}

void main(){
	fun(1234.5678);	
}

运行结果:
fun(1234.5678)
四舍五入算法 C语言练习
fun(1234.5435)
四舍五入算法 C语言练习