mainfloat x 12printff t 15f tx,x這裡的輸出結果為什麼是

2022-05-18 13:25:42 字數 2049 閱讀 2810

1樓:

float型別保留7位有效資料,第8位入以後是不準確的。123456.1是準確的,0.023上不準確的。

2樓:匿名使用者

因為浮點數float型變數只有7-8位有效數字

3樓:匿名使用者

你的數超過了符點數所能表示的最大精度,所以出問題了!

在ieee754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。float有32bit,double有64bit。它們的構成包括符號位、指數位和尾數位。

這些位的構成如下:

float---第31位(佔1bit)---第30-23位(佔8bit)----第22-0位(佔23bit)

double--第63位(佔1bit)---第62-52位(佔11bit)---第51-0位(佔52bit)

取值範圍主要看指數部分:

float的指數部分有8bit(2^8),由於是有符號型,所以得到對應的指數範圍-128~128。

double的指數部分有11bit(2^11),由於是有符號型,所以得到對應的指數範圍-1024~1024。

由於float的指數部分對應的指數範圍為-128~128,所以取值範圍為:

-2^128到2^128,約等於-3.4e38 — +3.4e38

精度(有效數字)主要看尾數位:

float的尾數位是23bit,對應7~8位十進位制數,所以有效數字有的編譯器是7位,也有的是8位

•float 為4個位元組,表示為:一個符號位,8個指數位,23個尾數,所以有效位數由尾數來決定,即2^23=8388608為7位,指數的範圍是2^(-127~127)

double為8個位元組:表示為:一個符號位,11個指數位,52個尾數來表示,所以有效位數為2^52=4503599627370496為15位,指數的範圍為2^12-1=4095(-2047~2047)

你的數超過了符點數所能表示的最大精度,所以出問題了!

main() {float x=1,y; y=++x*++x printf("%f\n";y); getch() } 運算結果是什麼?

4樓:辛新土

x=1++x使得x等於2

++x使得x等於3

2x3=6

5樓:

輸出 y 的值 6

c語言中用float x=1234567.1234 然後printf("%f",x) 為什麼輸出的 10

6樓:匿名使用者

float型別資料精度是6 -- 7位,且第七位是四捨五入得到的,所以輸出1234567.125000是可以理解的,若用double型別,輸出精度在13位以上,也就是說,前13位是可信的。

7樓:四角瑪

這跟單精度浮點數(float)的組成有關

一個float型資料佔據4位元組即32位記憶體,分別:

第1位是符號位,2~9位是指數位,10~32位是尾數1位 符號位f 即0為正,1為負

8位 指數位e 127為零,加1即尾數乘2,反之除223位 尾數n 共有24位,前面預設有1,即1.n瞭解了結構再來討論精度:

精度取決於尾數,既有效位數,我們知道2^10約為10^3,那麼2^20約為10^6,2^24約為10^7即8位有效數字

當編譯器將1234567.1234賦給x時發生了截斷,即高八位有效1234567.1

那為什麼結果是1234567.125000呢這得說是%f 的原因,它是用來讀取double型別資料的,printf讀取x的時候會讀取x即x後面的內容,這就導致了不準,但對於引數的處理,各編譯器處理方式是不一樣

8樓:匿名使用者

{ float x, *p = &x;//定義兩個變數: x是浮點型別,存小數;p是浮點指標型別,存小數變數的地址。並給p賦初始值為&x。 printf("&x=%x

", &x);//x的地址 printf("p=%x", p);//p的值 printf("&p=%x", &p);//p的地址 scanf("...

15分之18等於12除以幾,10除以15分之1等於多少

18 15 12 x 18x 12 15 18x 180 x 10 所以15分之18等於12除以10。你好,此題解答如下 18 15 6 5 12 10 注 先將分數化成最簡,然後看要求的分子或分母需要擴大幾倍,分子分母要同時擴大相同的倍數。希望能夠幫到你。10除以15分之1等於多少?分數計算 10...

我姓謝,兒子是12年12月11日3點15分生的,求高人根據他

謝駿瀧駿有賢才的意思,今年是龍年,這個龍還有水,希望你兒子能夠健康成長昂 謝謝 起名字這些不重要,要起就起一個不容易給起外號的名字,不然以後對孩子的傷害可是很大的 求高人給女兒取個名字,最好能按她的生辰八字取。姓謝,2012年12月31日早晨9點50分,希望名字是3個字的。農曆 二 一二年十一月十九...

12v1 5a的電器,可以用12v0 5a的變壓器嗎

不能用,12vx1.5a 18w,而12vx0.5a 6w。會燒壞變壓器。需買一隻20w的變壓器,如用電器用直流12v,還需買整流橋將交流電變為直流電應用。建議你這個問題。對於電器的功率來說,前者的功率大,後者的功率小。所以說後者代替不了前者。主要容易是電器啟動不起來。希望能幫到你,這只是個人意見。...