python中保留两位小数的编写程序_P081 保留两位小数

所属年份:2011.3;2011.9

请编一个函数 float fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。

例如,若h 值为1234.567,则函数返回1234.570000;若h值为 1234.564,则函数返回1234.560000。

#include

#include

#include

float fun (float h )

{

}

void main()

{

FILE *wf;

float a;

system("CLS");

printf("Enter a: ");

scanf ("%f",&a);

printf("The original data is : ");

printf("%f\n\n", a);

printf("The result : %f\n", fun(a));

/******************************/

wf=fopen("out.dat","w");

fprintf(wf,"%f",fun(8.32533));

fclose(wf);

/*****************************/

}

【解题思路】

注意:本题要求h的值真正进行四舍五入运算,而不是为了输出,即不能用printf(“%7.2f”,h)来直接得到结果。

四舍五入算法:如果要求精确到小数点后面的第n位,则需要对第n+1位进行运算。方法是将该小数乘以10的n+1次方后加5,然后除以10并强制转换变量类型为长整型,再将该数除以10的n次方,同时强制转换类型为浮点型。

代码实现如下:

long t;  /*定义长整型变量t*/

t=(h*10n+1+5)/10; /*对h进行操作,得到值浮点型,t取值时取整数部分。10n+1为要扩大的倍数*/

h=(float)t/10n;  /*将t缩小10n倍,并转换成浮点型*/

【参考答案】

float fun (float h )

{

long t;

t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当于对h中的第三位小数进行四舍五入

除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/

return (float)t/100; /*除以100,保留2位小数*/

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值