c語言如何精確小數點後指定位數,c語言如何控制小數位數

時間 2021-09-11 22:33:34

1樓:匿名使用者

只能用陣列或者字串模擬除法運算來完成。否則一經超出最大長度

2樓:匿名使用者

這個只能間接實現,可以用陣列儲存每一位數值。

3樓:風若遠去何人留

可以在輸出時,指定小數點後的有效位數,實現精確到若干位的效果。

要精確到小數點後若干位,則資料型別為浮點型,可能為單精度(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);

4樓:平靜的心情追夢

100位的話,需要的字長是多少啊,c語言不會允許的。

5樓:匿名使用者

如果指定位數在float或者double表示範圍內,那麼你可以直接輸出;如果位數超出了計算機能夠表示的範圍,由於有理小數都可以表示成分數形式,你可以用整數形式儲存分子和分母,然後寫一個方法做整數的除法,得到的商的每一位都儲存在一個整數陣列裡面。再逐位輸出來就是了。

6樓:

就是從小數點後保留100個數字就可以了

7樓:古之謂

doublt x;

x=1/3;

printf("%d.100",x);

8樓:

printf("%0.100f",1/3)

9樓:

c語言不允許太多位了

10樓:匿名使用者

#include

#include

#define n 100

main()

printf("%d.",c);

for(i=2;i<=n+2;i++)

}getch();}

11樓:匿名使用者

printf("%.2lf",k); k是變數

c語言如何控制小數位數

12樓:歷史小店

可以在輸出時,指定小數點後的有效位數,實現精確到若干位的效果。

要精確到小數點後若干位,則資料型別為浮點型,可能為單精度(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);

13樓:天雲一號

控制小數位數就是通過輸出格式說明符來規定的。

舉例說明如下:

float f1=3.1415926;

float f2=1234.1415926;

float f3=124.1;

printf("%3.4f", f1);  // 輸出結果為:_ _ 3.1416 ( _ 表示空格)

printf("%3.4f", f2);  // 輸出結果為:1234.1416

printf("%3.4f", f3);  // 輸出結果為:124.1000

printf("%3.4f", f);中的3是控制f的整數部分按3位的固定位寬輸出;4是按四捨五入的準則保留4位小數。

注:如果整數部分不足3位,則在前面補空格,超過3位,則按實際位數輸出;如果小數部分不足4,則在後面補0

14樓:匿名使用者

預設6位小數,例如輸出的格式控制符%7.2f就是符號、整數、小數加上小數點共7位,小數2位,其他類推

15樓:匿名使用者

這個很簡單。printf("%.2f\n",x);當然x是float型的。輸出就是兩位小數。就是在f前+小數點+保留小數的位數。

16樓:匿名使用者

%.2f 其中的2表示小數點後2位數 自己用的時候自行替換該數字即可

17樓:手機使用者

#include

int main()

18樓:

eam>

using namespace std;

int main()

例子中的cout<

還有很多用法 無法一一舉例

c語言中輸出時怎樣控制小數點後的位數,請舉例說明保留1、2、3、4位小數等等,謝謝

19樓:凌亂心扉

舉例說明如下:

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;

20樓:匿名使用者

我們在輸出語句上加如0.就行了,比如printf("%0.2f",a); 就是保留2位.

上**#include

int main()

再上結果圖:

擴充套件資容料:小數在計算機中的儲存:

對於浮點型別的資料採用單精度型別(float)和雙精度型別(double)來儲存,float資料佔用 32bit,double資料佔用 64bit.其實不論是float型別還是double型別,在計算機記憶體中的儲存方式都是遵從ieee的規範的,float 遵從的是ieee r32.24 ,而double 遵從的是r64.

53。無論是單精度還是雙精度,在記憶體儲存中都分為3個部分:

1) 符號位(sign):0代表正,1代表為負;

2) 指數位(exponent):用於儲存科學計數法中的指數資料,並且採用移位儲存;

3) 尾數部分(mantissa):尾數部分

21樓:靠名真tm難起

%nf 即輸出的bai

數字佔dun位 當原數字位數zhi大dao

於n時原樣輸出,原數字位數小於回n時輸出數字左端補上空答格,比如原數字為a=1.23456;n為4時輸出為1.23456,n為9時輸出為(空格空格1.23456)

22樓:陳昇富你好

#include

void main()

以此類推權

你說的n指輸出的資料共佔n列

23樓:黃

n是你需要保留的多少位小數的位數,a為變數。比如:

float a=3.14159;

printf("%3f",a);

輸出的結果為:3.141

24樓:匿名使用者

一。%nf 即輸出的數

自字佔n位 當原數字位數大於n時原樣輸出,原數字位數小於n時輸出數字左端補上空格,比如原數字為a=1.23456;n為4時輸出為1.23456,n為9時輸出為

(空格空格1.23456)

二。%n.mf 即輸出總共佔n位其中有m位小數 如a=1.23456 用%4.2f輸出為1.23如果用

%5,1f輸出為123.4即長度為5小數為1!這裡也有當原數字長度小於n時左端補空格這個規則!

還有就是當n前面有個負號時即%-nf或%-n.mf時就右端補空格!

25樓:手機使用者

地址單元而定

#define uchar unsigned char#define uint unsigned intuchar xdata xram _at_ 0xff00[4];//指定外部儲存地址

uchar data1[4]; //你先把你的四位數每位單獨分離出回來存到這個4成員陣列答

void main(void)}

26樓:匿名使用者

保留1位小數 printf("%.1f",a);

保留2位小數 printf("%.2f",a);

保留3位小數 printf("%.3f",a);...

c語言程式設計序時怎麼控制浮點型輸出的小數點精確到幾位

27樓:匿名使用者

使用輸出格式說明符來指定精確到小數點位數。

如:void main()

其中%.3f裡的3就表示輸出精確到小數點後3位。

所以可參考的形式是printf("%m.nf",p);

%m.nf,指定輸出的資料共佔m列,其中有n位是小數。如果數值長度小於m,則左端補空格,若數值長度大於m,則按實際位數輸出。

28樓:天雲一號

可以通過輸出格式說明符來指定精確到小數點後幾位。

比如:printf("%2.3f\n", 3.1415926) // 輸出_ 3.142 (其中_ 代表空格)

上面的輸出格式說明符%2.3f 中各部分意思如下:

2—— 表示整數部分以固定2位寬度輸出。如果資料的位數小於2,則左端補以空格,若大於2,則按實際位數輸出。

.3——(3的前面有個小數點)表示輸出精確到小數點後3位。如果實際數字不足3位,則在末尾補0,若大於3位,則按四捨五入取前三位。

29樓:匿名使用者

%m.nf

最小域寬m

精度n:%f,%e,%e時,確定顯示小數點後位數

C如何控制float小數點位數,在C 中怎麼控制float的值保留小數的位數

四舍 入 1 保持原來的float型別值不變,顯示或輸出時指定小數點位數float x 62.11512322f 用 f2 指定小數點後2位 string s string s string.format x 結果 s 62.12 2 改變float 型別值,保持指定的小數位數float x 62....

單精度小數點後面有幾位,C語言浮點型小數點後為多少位

愚人談娛樂 不一定的。單精度浮點數,浮點浮點,意思就是小數點會浮動的。單精度浮點數的實際有效精度為24位二進位制,這相當於 24 log102 7.2 位10進位制的精度,所以平時我們說 單精度浮點數具有7位精度 精度的理解 當從1.000.02變化為1.000.12時,變動範圍為2 23,考慮到因...

7化成迴圈小數後,小數點後第2019位數字為7,則a是多少

因為1 7 0.142857142857 142857迴圈 所以第2009位數字是5,故a 5 因為2 7 0.285714285714 285714迴圈 所以第2009位數字是1,故a 1 因為3 7 0.428571428571 428571迴圈 所以第2009位數字是7,故a 3.1 7 0....