c語言怎麼把小數前面的零去掉,例如0 123輸出的是 123。急

2021-03-22 08:33:04 字數 6312 閱讀 1197

1樓:匿名使用者

編寫一個函式,把0.123轉化為字串".123"即可。

2樓:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void)

在c語言中 怎麼樣使小數點前面的數字不輸出.如:m=0.123, 輸出時的格式為 .123

3樓:匿名使用者

是3!從1到9其計9位,從10到99共計90個數計,每個佔2位,也就是回說第190開始是100,以後每個佔3位,1000位前邊去掉189還有811位,將其除以答3可以得到270也就是已經排了270位了,即排到370,當然,第100位時就是從100開始的第811位,811除3時還有一個1,顯然是370後的第一個數字,是371的第一個,當然是3了!

4樓:匿名使用者

恩,bai先用duprintfs將浮點數專成zhistring然後處理下

daostring再輸專出到介面上:

屬float f = 0.123;

string s = printfs("%d",f);

s = s.substring(1);

printf("%s",s);

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:不能說的_祕密

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

8樓:於是我呵呵

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

c語言中如果double x=123.123000,但是我只想輸出0.123 後面的0我不想要該怎麼辦呢? 牛人解答一下 謝謝了

9樓:

//看下面例子

#include

void main()

輸出123.123

//詳情可參考語法書中關於printf的說明。

如果不管最後多少個零,都去掉,可以這樣:

#include

#include

void main()

注意vc6下,double最多小數點後面可以有15位,再多了肯定都是0,上面程式設了20,肯定後面都是0,用於輸出的話,轉換成ch後,刪除0字元,再輸出,肯定沒問題的。

拋磚引玉,樓主參考,有問題,再hi我,繼續**。

10樓:張正雄

printf("%3f",x); f前面的3就是你要保留的小數點後尾數。

11樓:匿名使用者

用%e輸出可以沒有零,旦以科學計數法輸出

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

12樓:匿名使用者

f=123.123

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

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

13樓:三號床鋪的四哥

有兩種方法:

使用函式:

#include

void main()

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

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

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

14樓:匿名使用者

太簡單了

#include"stdio.h"

main()

15樓:匿名使用者

//無小數的浮點數

#include

void main()

16樓:匿名使用者

#include

void main()

17樓:匿名使用者

double a=123.123;

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

c語言中小數怎麼表示

18樓:大野瘦子

兩種表示方式:

1、定點表示:必須有小數點。

例如:0.123, .123, 123.0。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如:12.3e3 ,123e2, 1.23e4。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

關於上述提到的定點表示和數的浮點表示

1、浮點型 float-point

float/double,都屬於浮點型表示。

2、定點型 fixed-point

例如,以一個位元組表示小數,小數點定在5.3位置,高5位表示整數,低3位表示小數。

11001001

加上小數點之就是11001.001即整數部分為11001,小數部分為001

轉換一下

整數部分 11001 = 25

小數部分 001 = 1 (分子),分母是1000(8),所以就是1/8

最終此小數表示的是 25 + 1/8

也就是說,存0/8, 1/8, 2/8, ..., 7/8 共八個檔,表示精度為1/8

可見,定點型小數的值取決於你把小數點定在**。

3、數的定點表示:

小數點按照約定的形式給出。在計算機裡面沒有專門的硬體用來表示小數點, 所謂的小數點都是計算機體系設計人員按照約點的形式給出的。

按照約定的方式, 可以將計算機分為兩種:一種是小數點在數符後面數值前面, 一種是數值後面。

4、浮點表示

最早的計算機只有兩種表示方式:小數定點機和整數定點機。如果計算很大的數值時需要程式設計師手動調節小數點的位置程式設計困難。

數的表示範圍很小, 為了表示相差很大的資料, 往往需要很大的機器字長。

資料利用率不高, 用很大的機器字長時, 有很多位都是 0 。

5、高精度小數

#include

void main()

a=a%b*10;

printf("%d",a/b);

**t++;}}

19樓:小咖影屋

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:0.

123, .123, 123.0。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.

3e3 ,123e2, 1.23e4。錯誤的寫法:

e-5 ,1.2e-3.5,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

20樓:匿名使用者

4.2用c語言表示

:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

21樓:

我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

c語言中 小數點前、後面的零怎麼控制輸出 比如,0.001-變為.001;200.00變為200;200.1不變。

22樓:

樓主 要的 這個結果?執行下 看看

#include

main()}}

printf("%s\n", str+i);}}

23樓:滄海雄風

你第一個是0.001- 是嗎 變為 .001第二個是200.00變為200

第三個是200.1 不變?

你到底是什麼規律? 每次規律都不一樣嗎?

你至少該給個規則吧

比如 第一個 需要小數點後的三位 小數點前的不要第二個 只要小數點前的

第三個 不變

思路就是很簡單的 轉換成字串 根據需求 擷取小數點前後指定的位數

你如果能把你的規則說清楚 我可以給你寫出來

24樓:匿名使用者

#include

#include

int main()

return 0;

}前面沒有0的我做不到

25樓:匿名使用者

自己寫一個函式,根據數字的小數位數來輸出

26樓:注意樓下

cstring a;

double m;

a.format("%f",m);

if(m!=0)

trimright("0");的意思可以理解為從右開始刪除把文字(cstring)中0,當trimright沒有遇到0時結束,但是當你寫成trimright(".0");時,你會發現一樣能達到取整數的目的,那是因為那時trimright從右開始刪除把文字(cstring)中"0"或者".",當trimright沒有遇到"0"和".

"時結束,但這樣會讓你沒有辦法輸出10的倍數,因為"0"和"."是並列的,當你輸出10的倍數時,trimright會先刪除"."然後刪除"0",所以你得不到10的倍數

c語言中一個數的小數如何表示

27樓:匿名使用者

4.2用c語言表示:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

c語言精確小數位數會怎樣捨去後面的小數

1 正數 baix四捨五入的技du巧 doublex x int x 0.5 2 舉例zhi 若正數要依捨去法精 dao確到小數點後第二回位 例如6.2367 int 623.67 100.0 623 100.0 6.23 doublex x int x 100 100.0 注意是答除以100.0 ...

c語言裡怎麼輸出6位以上的小數,C語言裡怎麼輸出6位以上的小數。

1 c語言中制,輸出double型別 雙精度實型 以及float型別 單精度實型 時,預設輸出6位小數。比如這樣的 double a 1 printf lf n a 輸出會是 1.000000 2 但是有時六位會顯得很長,沒必要。比如計算平均分,一到兩位小數就足夠了。可是有時六位又不夠,需要更多位小...

C語言賦值中除法計算怎麼保留N位小數

方法一 通過數學方法判斷分數是否是無限迴圈小數,需要確定分子分母是否互質,另外還要判斷小數從第幾位開始無限迴圈,比較麻煩。方法二 直接講分數運算結果轉換成字串,然後寫函式進行字串比較。如下 include include int checkanswer char solution,char answ...