今天在做東西時需要輸出乙個固定小數字數的字串,在網上查到有個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 ...