を使用してフロートの CSV を出力していofstream
ます。float の 99% は小数点以下 1 桁から 2 桁の精度であるためfileOut.precision(3)
、正確な精度を強制するには単純に使用するだけで十分です。
時々、float の値が極端に低くなり、科学表記法 aka で出力されます1e-007
。この場合、理想的には0
.
ここでの多くの回答は、これを防ぐためにに似たものを使用することを提案していますfileOut.setf(std::ios::fixed, std::ios::floatfield);
が、これにより、0.000
桁数が必要かどうかに関係なく、すべてのフィールドが出力されます。
私が望むのは、すべてのフロートが正常に動作し、科学表記法を表示しないことです。
とにかくこれを行うにはありますか、それとも数値が下にあるかどうかをチェックする単純な関数を作成する必要があります0.001
か?そうであれば、0に設定しますか?
アップデート:
現在、次のコードを使用してフロートをラップしていますが、理想的ではありませんが機能します。
float _RoundToZero(float in, int precision = 2)
{
return in <= (1 / powf(10,precision)) ? 0.0 : in;
}