c語言如何取小數,比如說輸入1 23輸出23,輸入

時間 2021-10-15 00:20:53

1樓:

你的程式沒有錯。

問題是浮點數本來就是不能精確表示的。

比如輸入1.23,那麼在xj=m-temp;這一句執行後,在vc裡用f5除錯的時候,你會發現xj的值不是0.23,而是0.22999999999……。

所以你的程式沒有錯,只是純粹是理論上的。

2樓:左左強強峰峰

# include

# define n 12

int main()

3樓:匿名使用者

用我這個程式

#include

#define size 128

void getnum(char* res,float value)char s[size];

memset(s,0,size);

int len = strlen(res);

memcpy(s,res+i+1,len-i-1);

memcpy(res,s,strlen(s));

len = strlen(res)-1;

for(i=len;i>0;i--)}}

void main(int argc, char *ar**)

4樓:匿名使用者

用字串行不?

main()

*(b+j)='\0';

printf("%s",b);}

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

5樓:凌亂心扉

舉例說明如下:

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;

6樓:匿名使用者

我們在輸出語句上加如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):尾數部分

7樓:靠名真tm難起

%nf 即輸出的bai

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

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

8樓:陳昇富你好

#include

void main()

以此類推權

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

9樓:黃

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

float a=3.14159;

printf("%3f",a);

輸出的結果為:3.141

10樓:匿名使用者

一。%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時就右端補空格!

11樓:手機使用者

地址單元而定

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

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

void main(void)}

12樓:匿名使用者

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

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

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

c語言,將double資料輸出時,如何去掉小數位多餘的0?

13樓:匿名使用者

printf("%g\n", a ); //這樣試一下,是不是你想要的

14樓:匿名使用者

double a = 1.001;

printf("%lf",a);//會輸出1.001000,怎樣才能輸出1.001

通過在%與lf之間加上.d(此處的d為十進位制正整數)來控制輸出小數的位數,以此來控制輸出資料的精度,

比如:%.3lf表示輸出的資料有3位小數

%.5lf表示輸出的資料有5位小數

%lf預設輸出6位小數 ,所以本來a=1.001,結果輸出1.001000

15樓:不能說的_祕密

可以用%2.3lf,點3代表著小數為保留3位,前面的2可以隨便。

16樓:於是我呵呵

printf("%.3lf", a);

c語言中輸出如何保留x位小數,注意x是變數

17樓:風若遠去何人留

要輸出x位小數,可以使用printf中的格式控制。

如果要輸出的是float型別,可以使用f格式。

如果是double型別,可以使用lf格式。

比如,要輸出double型別變數d, 保留5位小數,可以使用語句printf("%.5lf",d);

而x是變數時,可以使用

printf("%.*lf",x,d);

即通過.*匹配x。

18樓:量子

先把要輸出的資料用sprintf轉換成字串,保留足夠多的位數,然後根據x的值,從小數點後擷取相應的位數字串輸出

19樓:獨孤丶敗天

用double型別能夠有小數,輸出printf("%.xlf\n",)其中x是保留的小數位數 就是說加上.x 表示保留小數

20樓:

一。%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時就右端補空格!

21樓:匿名使用者

#include

void main()

22樓:匿名使用者

int i = 3;

printf("%.*lf\n", i, 1.381937635);

c語言題目 輸入正整數a,b,c,輸出a b的小數形式,精確

你沒有必要那樣做的,直接這樣就可以了。如。c 8 double pp a b if pp 1000000000 10 4 判斷小數點後第9位是否大於4,大於4就要進位 pp 0.00000001 printf 結果是 0.8f pp 輸出結果,自動只輸出到小數點後8位。 include includ...

C語言中如何取整,C語言中取整是怎麼取?

茅玉枝稅子 參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d n 10 3,10 3 printf f,f n 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 inti 2.5 或i int 2.5 這...

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

只能用陣列或者字串模擬除法運算來完成。否則一經超出最大長度 這個只能間接實現,可以用陣列儲存每一位數值。 風若遠去何人留 可以在輸出時,指定小數點後的有效位數,實現精確到若干位的效果。要精確到小數點後若干位,則資料型別為浮點型,可能為單精度 float 或雙精度 double 在c語言中,使用格式化...