Cでfloat型が表す最小の正の数値を求めるプログラム書いてて、
とりあえず1.175494e-38に近づけるように書いてみてるんだが
printfで値表示させながらやってみると1.175494e-38以下も表示されるのなんで?
環境はgcc5.5.0_1

とりあえず最小判定は初期値1.2e-38を0.000001e-38ずつ減らしていって、
1.175494e-38を抜けるとバカな数字が出てくると仮定してif(a / (b - c) != 1)で判定してる

int main(){
float a = 1.2e-38, b;
float c = 0.000001e-38;

while(1){
b = a;
a -= c;
printf("a=%.6e b=%.6e\n", a, b);
if(a < 0 || b < 0) break;
if((a / (b - c) != 1.0)) break;
}

printf("a=%.8e b=%.8e\n", a, b);
if(b < 1.175494e-38) printf("b is not min value\n");
}