python中保留两位小数的编写程序_P081 保留两位小数
所屬年份:2011.3;2011.9
請編一個(gè)函數(shù) float fun(double h),該函數(shù)的功能是:使變量h中的值保留兩位小數(shù),并對第三位進(jìn)行四舍五入(規(guī)定h中的值為正數(shù))。
例如,若h 值為1234.567,則函數(shù)返回1234.570000;若h值為 1234.564,則函數(shù)返回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的值真正進(jìn)行四舍五入運(yùn)算,而不是為了輸出,即不能用printf(“%7.2f”,h)來直接得到結(jié)果。
四舍五入算法:如果要求精確到小數(shù)點(diǎn)后面的第n位,則需要對第n+1位進(jìn)行運(yùn)算。方法是將該小數(shù)乘以10的n+1次方后加5,然后除以10并強(qiáng)制轉(zhuǎn)換變量類型為長整型,再將該數(shù)除以10的n次方,同時(shí)強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)型。
代碼實(shí)現(xiàn)如下:
long t; /*定義長整型變量t*/
t=(h*10n+1+5)/10; /*對h進(jìn)行操作,得到值浮點(diǎn)型,t取值時(shí)取整數(shù)部分。10n+1為要擴(kuò)大的倍數(shù)*/
h=(float)t/10n; /*將t縮小10n倍,并轉(zhuǎn)換成浮點(diǎn)型*/
【參考答案】
float fun (float h )
{
long t;
t=(h*1000+5)/10; /*單精度數(shù)h乘以1000后再加5,相當(dāng)于對h中的第三位小數(shù)進(jìn)行四舍五入
除以10后將其賦給一個(gè)長整型數(shù)時(shí)就把第三位小數(shù)后的數(shù)全部截去*/
return (float)t/100; /*除以100,保留2位小數(shù)*/
}
總結(jié)
以上是生活随笔為你收集整理的python中保留两位小数的编写程序_P081 保留两位小数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Springboot 常用注解
- 下一篇: 矩阵对角线元素之和