C語言程式設計中怎麼自動去掉浮點數小數點後沒用的

2021-03-05 09:13:39 字數 3310 閱讀 8058

1樓:會飛的小兔子

#include

int main()

擴充套件資料

c語言浮點數

浮點數的值等於尾數乘以 2^x。讀者應該注意,上圖是二進位制分數,因此 0.1表示 1/2。

為了方便理解,我們可以將其與十進位制的小數對應起來:十進位制的 0.1 等於 1*10^-1,所以二進位制的 0.

1 等於1*2^-1,也即 1/2。

「尾數+指數」模式儲存浮點數可能有一點問題,例如:2x10^-1=0.2x10^0=0.

02x10^1,依此類推。同樣乙個數字可能有多種「尾數+指數」的表示方法,而同時兼顧多種表示方法勢必會造成巨大的浪費。

2樓:匿名使用者

可以通過%.xf或者%.xlf來限制,其中x是乙個整數;

如果保留一位小數x 為1,兩位為2;

以此類推;

注意%.xf的x的值不能大於7,由於float型別的精確度只有小數點後7位;

%.xlf的x的值不能大於15,double型別的精確度只有小數點後15為;

通過限制小數點的位數,去掉多餘的0;。

c語言中printf函式怎麼才能自動去掉小數點後的零?

3樓:匿名使用者

直接用"%g"就行了!

4樓:匿名使用者

這樣寫試試,好久沒寫c了,忘得差不多了。嘿嘿

printf("%.0f",x);

用c語言浮點輸出時,如何讓小數點後沒用的0不顯示。

5樓:匿名使用者

用%g格式符就可以了

例如:float f=3.14;printf("%g",f);

6樓:匿名使用者

printf("%.0lf", 2.344); //輸出為2 double型別

printf("%.0f", 2.344); //同上. float型別

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

7樓:匿名使用者

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

8樓:匿名使用者

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

9樓:不能說的_秘密

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

10樓:於是我呵呵

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

c語言 去掉小數點後面的數

11樓:匿名使用者

f=123.123

使用強制轉換命令:(int)f;

注意:在轉換的時候,前面的轉換型一定要打括號,否則不起作用。

12樓:三號床鋪的四哥

有兩種方法:

使用函式:

#include

void main()

printf("%d\n",a); }

2.使用強制轉換命令:(int)f;

注意:在轉換的時候,前面的轉換型一定要打括號,否則不起作用。

13樓:匿名使用者

太簡單了

#include"stdio.h"

main()

14樓:匿名使用者

//無小數的浮點數

#include

void main()

15樓:匿名使用者

#include

void main()

16樓:匿名使用者

double a=123.123;

printf("%d",int(a));

如何使得c程式裡面printf函式對於浮點數不顯示後面的一大串0?

17樓:匿名使用者

printf("%g \n",float_value);

18樓:匿名使用者

%m.nf表示總長為m,小數點後有n位的實數

總長不足m位左邊補0

19樓:匿名使用者

printf("%.2f",1.55000); // %.2f就是2位小數的意思 %.3f就是3位....

20樓:楊洋

加%0.1f 就是printf("%0.1f",x);

21樓:張老叉

printf(「%0.lf」,a);

c中如何使輸出的值小數點後最末位0捨去?

22樓:匿名使用者

如果你僅僅是要最後乙個0去掉,很麻煩。不是的話,就用g格式。

g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。

printf("%g\n",a);

僅僅要去掉最後乙個0,方法樓上有**了。麻煩 - -

23樓:匿名使用者

#include

int main()

24樓:我有赤兔

float f=3.141592653,x;

x=f%1;// x就是小數點後面的東東

char a=(char)f; /把浮點數轉成字串int i=2;/從a[2]開始才是小數的第一位char b=a[i];

while(b!='0')// 每個字元逐個檢查,直到發現0printf("%.(i-2)",f);//之所以-2是因為字串的第乙個字元是 0 第二個字元是 。

這個辦法真的很麻煩,可是你的要求也夠麻煩的。。。。

25樓:匿名使用者

float f = 3.123456

printf("%.1",f);

結果為3.1

printf("%.5",f);

結果為3.12346

c語言編寫《分糖果問題》,C語言程式設計怎麼解決分糖問題

倒!又是腦筋急轉變!都是高手看的東東。閃!這也太難了吧 期待回的人出現 倒又腦筋急轉變 都高手看東東閃 c語言程式設計怎麼解決分糖問題 分糖果問題 幼兒園有n 20 個孩子圍成一圈分糖果,老師先隨機地發給每個孩子若干顆糖果,然後按以下規則調整 每個孩子同時將自己手中的糖果分一半給坐在他右邊的小朋友 ...

C語言程式設計題,求助大神,c語言程式這道題怎麼做,求助大神

include include define n 10000 int main c語言程式這道題怎麼做,求助大神 include stdio.h include math.h define pi 3.1415926 int main int argc,char argv double x,y,t p...

c語言程式設計問題為什麼在scanfcch 中c加個空格就正確了 加空格和沒加空格有什麼不同?求解,詳細點

我的理解是你先輸入1 2按回車,然後螢幕顯示zhifu 然後你在輸入 如果你是這樣輸入的話 c前沒有空格的話 不會讀入程式賦給ch,因為輸入1 2後的回車符號賦給了ch,而接受回車的意思就是輸入終止,所以 並沒有賦給ch 這是因為你輸入的時候,是這樣輸入的 1 2 這樣吧,符號和前面的數字之間有乙個...