⑴ c語言編程序時怎麼控制浮點型輸出的小數點精確到幾位
使用輸出格式說明符來指定精確到小數點位數。
如:
void main()
{
float a=345.234678;
printf("%.3f ", a) ;
}
其中%.3f里的3就表示輸出精確到小數點後3位。
所以可參考的形式是printf("%m.nf",p);
%m.nf,指定輸出的數據共佔m列,其中有n位是小數。如果數值長度小於m,則左端補空格,若數值長度大於m,則按實際位數輸出。
(1)C語言輸出值精確到小數點位數擴展閱讀:
實型變數分為兩類:單精度型和雙精度型,
其類型說明符為float 單精度說明符,double 雙精度說明符。在Turbo C中單精度型佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
實型變數說明的格式和書寫規則與整型相同。
例如: float x,y; (x,y為單精度實型量)
double a,b,c; (a,b,c為雙精度實型量)
實型常數不分單、雙精度,都按雙精度double型處理。
⑵ C語言輸入小數,精確到小數點後10位
把scanf("%15.10f",&x);應該改成scanf("%15lf",&x);這樣就好了。
代碼中x是double型的,在輸入數據的時候是不允許使用%f的,double型的數據輸入必須使用%lf
還有,scanf("%15.10f",&x);15.10這個是不允許出現的,在數據輸入的時候只能指定輸入數據的總長度,不能指定小數點後的長度。
(2)C語言輸出值精確到小數點位數擴展閱讀:
scanf(函數原型
intscanf(constchar*restrictformat,...);
函數 scanf() 是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
⑶ C語言中輸出時怎樣控制小數點後的位數,請舉例說明保留1、2、3、4位小數等等,謝謝
控制小數位數就是通過輸出格式說明符來規定的
舉例說明如下:
1、float f1=3.1415926;
2、float f2=1234.1415926;
3、float f3=124.1;
4、printf("%3.4f",f1);//輸出結果為:_ _ 3.1416(_表示空格)
5、printf("%3.4f",f2);//輸出結果為:1234.1416
6、printf("%3.4f",f3);//輸出結果為:124.1000
printf("%3.4f",f);中的3是控制f的整數部分按3位的固定位寬輸出;4是按四捨五入的准則保留4位小數。
註:如果整數部分不足3位,則在前面補空格,超過3位,則按實際位數輸出;如果小數部分不足4,則在後面補0。
如果存儲比精度更重要,請考慮對浮點變數使用float類型。相反,如果精度是最重要的條件,則使用double類型。
浮點變數可以提升為更大基數的類型(從float類型到double類型)。當您對浮點變數執行算術時,通常會出現提升。此算術始終以與具有最高精度的變數一樣高的精度執行。例如,請考慮下列類型聲明:
float f_short;double f_long;long double f_longer;f_short=f_short*f_long;
在前面的示例中,變數f_short提升到類型double並且與f_long相乘;然後,結果舍入到類型float,然後賦給f_short。
在以下示例中(使用前面示例中的聲明),將以浮點(32位)精度對變數執行算術;結果隨後將提升到double類型:
f_longer=f_short*f_short;
double f_long;
long double f_longer;
f_short=f_short*f_long;
在前面的示例中,變數f_short提升到類型double並且與f_long相乘;然後,結果舍入到類型float,然後賦給f_short。
在以下示例中(使用前面示例中的聲明),將以浮點(32位)精度對變數執行算術;結果隨後將提升到double類型:
f_longer=f_short*f_short;
⑷ c語言如何讓輸出結果精確到兩位小數
可以在輸出的時候限制小數點位數。
1、當輸出單精度浮點型float變數f時,可以用printf("%.2f",
f);來使輸出結果保留兩位有效數字。其中.2就是代表保留兩位,如果要保留三位就是%.3f。用%.0f就是只輸出整數。
2、如果是雙精度浮點數double,就需要用%.2lf來使輸出結果保留2位小數。
⑸ c語言如何精確小數點後指定位數
可以在輸出時,指定小數點後的有效位數,實現精確到若干位的效果。
要精確到小數點後若干位,則數據類型為浮點型,可能為單精度(float)或雙精度(double)。
在C語言中,使用格式化輸出函數printf來實現輸出。
輸出格式為
%.NF
1 %為格式化字元串的引導字元。
2 .N表示指定顯示N位小數。
3 F為類型字元,對於float, F值為f, 對於double,F值為lf。
舉例:
1 要輸出float a=1.23234; 保留3位小數的寫法為:
printf("%.3f",a);
2 輸出double b=123.345232; 保留4為小數,寫法為:
printf("%.4lf",b);
⑹ C語言:要求輸入一個數,輸出這個數小數點後的位數
int
width,
digits;
double
data
=
3.14159265;
scanf("%d%d",
&width,
&digits);/*輸出的總寬度和小數位數*/
printf("%*.*lf",
width,
digits,
data);
/*總寬度和小數位數這兩項都可以任意選擇*/
⑺ 在c語言中如何指定精確到小數點後任意位數
Note1:
正數 x 四捨五入的技巧:
x --> (int)(x+0.5)
當 x=n+r, 0<=r<1,
若 0<=r<0.5, 則r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n
若 0.5<=r<1, 則1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1
Note2:
舉例來說: 若正數要依捨去法精確到小數點後第二位
x --> (int)(x*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27
Note3:
舉例來說: 若正數要四捨五入精確到小數點後第二位
x*100 四捨五入再除以100 就好
也就是 (int)(x*100+0.5)/100
⑻ C語言中……「計算結果保留三位小數。」怎麼表示
printf("%7.3f",100/3.0);表示結果佔七位,小數部分佔3位,這樣就可以了,並且小數點後第三位是四捨五入的結果。
例如:
C語言中浮點數輸出精確到兩位小數的語句如下:
double a=2.0;printf ("%.2f", a);//其中.2指明兩位小數
說明:如%9.2f
表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為6,如果9預設則場寬為該數實際位數
規定符
%d 十進制有符號整數
%x, %X 無符號以十六進製表示的整數
%o 無符號以八進製表示的整數
%g 把輸出的值按照%e或者%f類型中輸出長度較小的方式輸出
%p 輸出地址符
%lu 32位無符號整數
%llu 64位無符號整數
(8)C語言輸出值精確到小數點位數擴展閱讀:
如果是實數的話,就不是這樣了,機器有兩種辦法表示實數,一種是定點,就是小數點位置是固定的,一種是浮點,就是小數點位置不固定,計算方法也比較麻煩,通常會比整數運算代價大很多。
FPU->Floating Point Unit,浮點運算部件。
BCD->Binary Coded Decimal 壓縮的二進制數,是用4個位來表示數字0~9,一個byte表示兩個十進制數,比如正常二進制數1001111表示79,而BCD中用 0111 1001 來表示79。
科學計數法:a×10的n次冪的形式。將一個數字表示成 (a×10的n次冪的形式),其中1≤|a|<10,n表示整數,這種記數方法叫科學記數法。