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,還需買整流橋將交流電變為直流電應用。建議你這個問題。對於電器的功率來說,前者的功率大,後者的功率小。所以說後者代替不了前者。主要容易是電器啟動不起來。希望能幫到你,這只是個人意見。...