2012-12-12 41 views
-3

使用指數數字的以下代碼的輸出爲1.#INF00 -33.000000 0.000000。怎麼樣?指數數字如何在C中工作

#include<stdio.h> 
int main() 
{ 
    float p=3.5e38f; 
    float n=-3.3e1f; 
    float m=1.0e-38f; 
    printf("%f %f %f",p,n,m); 
} 
+0

在交出作業前,請仔細閱讀單精度浮標的限制。 – PeterJ

+0

你基本上達到了單精度浮點數的極限。這就是爲什麼你得到「無限」和「零」作爲輸出。 http://en.wikipedia.org/wiki/Single-precision_floating-point_format – Aziz

回答

0

你真的需要學習基礎知識。谷歌搜索「浮點數如何工作」將是一個好的開始。

http://en.wikipedia.org/wiki/IEEE_floating_point

簡要地說,第一個數字溢出到 「無窮大」(INF)。第二個是3.3倍,提高到1的次冪。第三個下降到零。