c語言中怎么四舍五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
擴展資料:
其他方法實現(xiàn)四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
el
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數(shù)與0比較的函數(shù),假設(shè)它存在。返回值與strcmp相同。
c語言怎么四舍五入
要用C語言實現(xiàn)四舍五入,有一個很巧妙的方法,僅使用int i=(int)(a+0.5)即可。如果遇到有負數(shù)的情況,只需要將加號改為減號即可。
C語言中四舍五入這樣表示:
inta=100.453627。
printf("%.1f",a+0.05);//四舍五入到十分位。
printf("%.2f",a+0.005);//四舍五入到百分位。
以此類推,對于十進制小數(shù).5類型數(shù)(如0.5,11.5,18.5),即小數(shù)部分可以以2的負一次方來表示的數(shù),這時計算機是可以“完美”的儲存這個十進制小數(shù)字。而對于.6,.7,.8,.9與.4,.3,.1,.2,這類數(shù)字,計算機雖然無法“完美”的儲存這些數(shù)字,在這樣的情況下可以運用所謂的“+0.5的取整法”。
所謂加0.5的取整法就是運用在C語言中浮點型數(shù)強制轉(zhuǎn)化為整形數(shù)時只會其保留整數(shù),而不會進行四舍五入的計數(shù)法則。所以對于保留整數(shù)的小數(shù)來說,我們只需在其原來的基礎(chǔ)上+0.5后再進行強制類型轉(zhuǎn)換,就可以達到不會出錯的四舍五入。
有的標準不存在C語言四舍五入:
C語言中的四舍五入在C98標準中,標準C函數(shù)庫是沒有關(guān)于四舍五入的函數(shù)的,到了C99標準才出現(xiàn)了ceil(),floor(),nearbyint(),round()之類豐富的取整函數(shù)。
現(xiàn)在使用的gcc都是C99標準了,而Windows下的VC(包括VS2008)還是C98標準,所以需要遵從嚴格格式,包括沒有內(nèi)聯(lián)inline、沒有單行注釋//、變量要寫在代碼塊的前頭等等,最大的缺點就是沒有那些函數(shù)的支持。
c語言 四舍五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
擴展資料:
其他方法實現(xiàn)四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
el
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數(shù)與0比較的函數(shù),假設(shè)它存在。返回值與strcmp相同。
C語言怎么四舍五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
擴展資料:
其他方法實現(xiàn)四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
el
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數(shù)與0比較的函數(shù),假設(shè)它存在。返回值與strcmp相同。
c語言四舍五入是怎樣的?
# incloud <stdio>
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
擴展資料:
其他方法實現(xiàn)四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
el
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數(shù)與0比較的函數(shù),假設(shè)它存在。返回值與strcmp相同。
C語言 四舍五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
擴展資料:
其他方法實現(xiàn)四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
el
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數(shù)與0比較的函數(shù),假設(shè)它存在。返回值與strcmp相同。
本文發(fā)布于:2023-02-28 18:57:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167759158148379.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:c 四舍五入(c語言四舍五入).doc
本文 PDF 下載地址:c 四舍五入(c語言四舍五入).pdf
| 留言與評論(共有 0 條評論) |