フロートを常に下または常に上にバイアスして丸めたい。これが必要なコード内の特定のポイントがあり、プログラムの残りの部分は通常どおり最も近い値に丸められる必要があります。
たとえば、最も近い 1/10 の倍数に丸めたいとします。7/10 に最も近い浮動小数点数は約 0.69999998807 ですが、8/10 に最も近い数値は約 0.80000001192 です。数値を四捨五入すると、次の 2 つの結果が得られます。同じように丸めたほうがいいです。7/10 は 0.70000004768 に丸め、8/10 は 0.80000001192 に丸める必要があります。
この例では、常に切り上げていますが、常に切り捨てたい場所がいくつかあります。幸いなことに、私はこれらの各場所で正の値のみを扱っています。
丸めに使用している行は ですfloor(val * 100 + 0.5) / 100
。私はC++でプログラミングしています。