(gcc を使用して) C++ のファイルにすべての浮動小数点数を生成しようとしています。私の最初の試みはFLT_MIN
、FLT_MAX
&FLT_EPSILON
を使用してそれらを生成することでした。コードは次のようなものでした:
#include <cfloat>
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
FILE* handle = freopen("todos_los_float.in","w",stdout);
for(float x = FLT_MIN; x < FLT_MAX; x = x + FLT_EPSILON)
cout << x << endl;
fclose(handle);
return 0;
}
FLT_MIN
FLT_EPSILONは数値の精度を破壊するため、これはうまくいきませんFLT_MAX
。
私はバイナリ形式で作業して追加することを考えましたが、特別な意味 (inf、-inf、NaN) をスキップするだけですが、これに最適なアプローチもわかりません。どのように数字を生成することをお勧めしますか?