c語言float四舍五入 如何讓float變量精確到小數(shù)點后兩位?
如何讓float變量精確到小數(shù)點后兩位?雙精度或浮點變量x可以舍入為(int)(x 0.5)。同樣,如果你想保留兩位小數(shù)(int)(100*x0.5)*0.01在C語言中,有很多解決這個問題的方法。假
如何讓float變量精確到小數(shù)點后兩位?
雙精度或浮點變量x可以舍入為(int)(x 0.5)。同樣,如果你想保留兩位小數(shù)(int)(100*x0.5)*0.01
在C語言中,有很多解決這個問題的方法。
假設我們有一個號碼3.1415926。。。我們要把它四舍五入到它指定的小數(shù)位。假設四舍五入得到3.142000的結果
我們需要以下過程:
##include<stdio。H>
int main()
{double num1,num2
num1=3.1415926
num1=(int)(num1*1000 0.5)//使用cast操作舍入第三位后的小數(shù)部分
num2=num1/1000//將數(shù)字除以1000并還原
printf(%f”,num2)
返回如果您是C99規(guī)范的編譯器,您可以可以直接使用round函數(shù)
用法如下:
#include<stdio。H>
int main()
{
num1=3.1415926,num2
num2=num1*1000
num2=round(num2)/1000//round(x)返回x的舍入整數(shù)值,然后舍入以下小數(shù)點。
Printf(%f”,num2)
返回0
}
如果您只想對浮點數(shù)進行四舍五入,我們可以直接執(zhí)行
#include<stdio。H>
int main()
{
double num1
num1=3.1415926
printf(“%)。3F“,num1)//0.3是一個附加的格式字符,意思是在小數(shù)點后保留3位數(shù)字,并自動進行四舍五入
返回0
}
c語言如何實現(xiàn)四舍五入?
],例如小數(shù)點是f
](float)((int)(f*100)[0.5))/100.0
為了保留兩位,先乘以100,小數(shù)點向前兩位,然后0.5四舍五入,保證四舍五入,然后轉(zhuǎn)換成浮點數(shù)形式或雙精度形式,再除以100
假設小數(shù)點后需要四舍五入兩位,利用整數(shù)的特性截斷小數(shù)值:float a=3.1415926,bintcb=AB*=100//b=314.15926b=0.5//四舍五入位數(shù)C=BB=C//截斷小數(shù)點后的數(shù)據(jù)C=314,b=314.0b/=100//恢復原來的小數(shù)點位置b=3.14,只需寫如下:b=(int)(a*100.5)/100F