c語言中的float型變數值精確到小數點後六位?那所

2021-04-22 02:19:47 字數 4057 閱讀 8144

1樓:匿名使用者

int是整數,就談不上精確度。

double的精度為15~16位。

c語言裡,double型別的資料可以精確到小數點後幾位?

2樓:匿名使用者

"%lf"預設只顯示6位小數,如果想顯示更多請指定:例如"%0.16lf"

精度位不夠自動四捨五入,沒辦法去掉。只有增加精度顯示

3樓:匿名使用者

十進位制的15或16位有效數字,因此精確到小數點後最多有15或16位。

4樓:匿名使用者

這個我記得跟系統的位數有關吧,還有你是以lf 的格式列印出來的,這2個一樣嗎?

c語言中,float型和double型變數如果不指定寬度,應分別保留小數點後幾位?????

5樓:匿名使用者

double與float的區別在於在記憶體中存放資料時佔用的記憶體不一樣,前者8位元組,後者4位元組,也就是前者儲存的小數位數比後者多一倍。

舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.

999999。因為c語言預設輸出小數位數都取6位,這時候看起來沒有區別,但是如果你進行格式控制,比如使用%.10,即小數保留10位,float輸出結果為1.

9999990000,而double輸出結果則為1.9999996666

c語言浮點型小數點後為多少位

6樓:假面

單精度浮

點型小bai數點後面有du效數字為

zhi7位和雙精度浮點型小數點後面有dao效版數字為16位。

單精度在一些權處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。

例如,當表示美元和分時,單精度浮點型是有用的。在foxpro中,單精度浮點型是為了提供相容性,浮點資料型別在功能上等價於數值型。

7樓:great小明童鞋

浮點型變數分為單精度(float型)、雙精度(double型)、長雙精度(long double型)3類,單精度浮點型小數點後專

面有效數屬字為6~7位和雙精度浮點型小數點後面有效數字為15~16位,單精度為32位,雙精度為64位,8位為一個位元組。

實數3.14159在記憶體中的存放形式為+.3141591,+為數符,.314159為小數部分,1為指數10^1,所以單精度提供的是7位有效數字。

c語言是什麼:

首先,人類發明了計算機,需要與計算機「交流」,即寫入和讀出,而且硬體需要與軟體相配才能發揮作用,這樣必須發明一中語言讓人類與機器能夠交流,就誕生了機器語言,也就是低階語言。同時因為機器硬體畢竟不如人聰明(耶~),而且二進位制也是最貼近硬體的語言,所以發明的語言也是最簡單的二進位制,而普通人甚至是科學家也難懂,所以發明了一些高階語言,如同c語言,c++等等。

8樓:文化廚子

c語言中浮點型bai一般du分為float單精度型、zhidouble雙精度型、long double長精度型,單精dao度浮點型小內數點後面有效數字為容6~7位和雙精度浮點型小數點後面有效數字為15~16位。

在c語言標準庫標頭檔案float.h定義了浮點數小數點後的有效位數 :

//float.h標頭檔案的部分**

#define dbl_dig 15    //雙精度小數點後15位#define flt_dig 6     //單精度小數點後6位#define ldbl_dig 19   //長雙精度小數點19

9樓:a九尾妖姬

c語言來中浮點型一般分為float單精度源型、double雙精度型、long double長精度型,單精度浮點型小數點後面有效數字為6~7位和雙精度浮點型小數點後面有效數字為15~16位。

在c語言標準庫標頭檔案float.h定義了浮點數小數點後的有效位數 :

//float.h標頭檔案的部分**

#define dbl_dig 15 //雙精度小數點後15位#define flt_dig 6 //單精度小數點後6位#define ldbl_dig 19 //長雙精度小數點19

10樓:匿名使用者

1.有效數字:

c語言bai中浮點型一du般分為float單精zhi度dao型、double雙精度型

單精度浮點型小數點後面專有效數字為屬7位和雙精度浮點型小數點後面有效數字為16位。

實數3.14159在記憶體中的存放形式為+.3141591,+為數符,.314159為小數部分,1為指數10^1,所以單精度提供的是7位有效數字。

2.位元組:

位元組是計算機資訊科技用於計量儲存容量的一種計量單位,也表示一些計算機程式語言中的資料型別和語言字元。一個英文字母(不分大小寫)佔一個位元組的空間,一箇中文 漢字佔兩個位元組的空間。一個 二進位制數字序列,在 計算機中作為一個數字單元,一般為8位二進位制數佔一個位元組,換算為 十進位制就是0~255。

11樓:匿名使用者

4個位元組是32位,比如32個1 七位有效就是隻記錄小數點後的六位,剩下的就不精確了 比如剩下的全用0代替了 ,顯示預設只有六位,可以控制!

12樓:瘋狂夏風翼

浮點型變數分為單bai

精度(dufloat型)、雙精度(double型)、長雙zhi精度dao(long double型)3類,內單精度浮點型小

數點後面有容效數字為6~7位和雙精度浮點型小數點後面有效數字為15~16位,單精度為32位,雙精度為64位,8位為一個位元組。

實數3.14159在記憶體中的存放形式為+.3141591,+為數符,.

314159為小數部分,1為指數10^1,所以單精度提供的是7位有效數字。希望你能明白~~~樂意為您開心服務~~~

13樓:匿名使用者

他那個有效數抄字就是比如說

baiflaot i = 3.12345678; float的有效數字為6位, 那麼du你輸出的時zhi候就會混沌化,也就是精度dao丟失,printf(「%lf」,i); 那麼他就會輸出3.12345754什麼的,也就是說當值多於有效數字的時候,那麼超出的部分值就是不可靠的值。

14樓:匿名使用者

單精度是七位,雙精度是十五位

c語言 執行結果中為什麼雙精度實型只輸出小數點後六位

15樓:匿名使用者

在c語言中,輸出double型別(雙精度實型)以及float型別(單精度實型)時,預設輸出6位小數。

比如這樣的版**:

double a = 1;

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

輸出會是

1.000000

但是權有時六位會顯得很長,沒必要。比如計算平均分,一到兩位小數就足夠了。

可是有時六位又不夠,需要更多位小數,比如計算高精度平方根。

這時可以用printf的格式控制。

如果要輸出n位小數,那麼可以用%.nlf的格式。其中n為數字。

如要輸出10位小數,那麼

printf("%.10lf\n", a);

即可類似的輸出1位小數

printf("%.1lf\n", a);

16樓:匿名使用者

樓上的回答是對的,printf要求你輸出格式,預設6位小數,你可以指定輸出幾位

17樓:匿名使用者

printf("%lf",p);

是一般輸出形式預設是 6位吧

你 試試

printf("%.10f",p);

也許就 可以了

18樓:匿名使用者

你可以自己設定輸出精度的

printf("%.nf",p); n為你的精度

如:printf("%.6f",p); //輸出為小數點後6位

19樓:匿名使用者

只輸出六位小數,這是預設的,可以改變,如:printf("%6",d)

關於c語言字元型,C語言中關於字元型變數。

關於printf c a i 如果把他換成printf s a i 為什麼不能編譯?回答 編譯應該沒問題,只是執行時必定錯誤.字串指一串連續的字元型的儲存域.c語言的字串在操作時一般以0值字元標誌字串的尾字元 佔一個字元的儲存域,但不計入字串長度 c 應該對應於字元型變數 當然字串中的一個字元也可以...

c語言全域性變數的定義,C語言中如何定義全域性變數

在所有函式外部定義的變數稱為全域性變數 global variable 它的作用域預設是整個程式,也就是所有的原始檔,包括 c 和 h 檔案。例如 int a,b 全域性變數 void func1 todo float x,y 全域性變數 int func2 todo int main todo r...

C語言全域性變數的問題,怎麼看,c語言中全域性變數及輸出問題?

二者記憶體佔用方面沒什麼太大區別,都是在定義的時候就分配好全部的記憶體,並且是連續的記憶體分配。唯一的區別就是a 100 會多一個初始化的過程。其實,如果a 100 是全域性變數,定義的時候陣列的每個元素會自動初始化為0。如果是區域性變數的話,則不會自動初始化。這跟c語言對記憶體的管理有關。簡單點說...