指数を使用した以下のコードの出力は、1。#INF00-33.0000000.000000です。どのように?
#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);
}
指数を使用した以下のコードの出力は、1。#INF00-33.0000000.000000です。どのように?
#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);
}
あなたは本当に基本を学ぶ必要があります。「浮動小数点数はどのように機能するか」を Google で検索するとよいでしょう。
http://en.wikipedia.org/wiki/IEEE_floating_point
簡単に言うと、最初の数値が「無限大」 (INF) にオーバーフローします。2 番目は 3.3 かける 10 の 1 乗です。3 番目のアンダーフローはゼロになります。