float型別轉換為固定小數字數的字串函式

2021-05-17 10:33:12 字數 1043 閱讀 5553

今天在做東西時需要輸出乙個固定小數字數的字串,在網上查到有個formatfloat函式可以實現這樣的功能,但在msdn中沒有找到這個函式。還有可以使用mfc中的format函式,但是不想想用mfc的東西,所以自己寫了個簡單的函式來實現轉換。

該函式的功能是把乙個float型別轉換為乙個char*作為輸出,輸出的數小數字個數由輸入的值確定:

輸入:  int.............確定所要輸出的小數字的個數; float.............需要轉換的浮點數。

輸出: char*..............浮點數轉換為滿足要求的字串。

templatet cfexp(t base, int exponent);   // 乙個求冪的函式,在後面的函式中要用到

char* cfformatfloat(int num, float f)

int temp1=f, temp2=f;

int ncount=0;

int i=0;

char chbuf[256]=;

while(temp1>0)

++ncount;                        //確定整數的位數,以確定小數點的位置

temp1/=10;

for(--ncount;ncount >= 0;++i,--ncount )

chbuf[i] = '0'+temp2/cfexp(10,ncount);

temp2%= cfexp(10,ncount);

chbuf[i++]='.';              //小數點

int num1=num;

for(int n=1; n <=num; ++n)

chbuf[i++]='0'+ ((int)(((f-(int)f)+5*cfexp(0.1,(num+1)))*cfexp(10,n)))%10; 

return chbuf;

template

t cfexp(t base, int exponent)

return base*cfexp(base, (exponent-1));

}

固定小數字數 setprecision

藍橋入門2 圓的面積 問題描述 給定圓的半徑r,求圓的面積。輸入格式 輸入包含乙個整數r,表示圓的半徑。輸出格式 輸出一行,包含乙個實數,四捨五入保留小數點後7位,表示圓的面積。說明 在本題中,輸入是乙個整數,但是輸出是乙個實數。對於實數輸出的問題,請一定看清楚實數輸出的要求,比如本題中要求保留小數...

java保留double型別固定小數字數的方法

方法一 用string類的format方法 例如 double x 1.23456789 system.out.println string.format 6f x 表示四捨五入保留六位小數。system.out.println string.format 3f x 表示四捨五入保留3位小數 輸出為...

float的數值範圍與小數字精度

float a a 1023.00006103515625 整數部分2 10 1,小數部分2 14 a 2047.0001220703125 整數部分2 11 1,小數部分2 13 a 4095.000244140625 整數部分2 12 1,小數部分2 12 a 8191.00048828125 ...