私は、VHDLテストベンチで使用するテストベクトルを生成するプログラムを作成中です。テストベンチは基本的に単精度浮動小数点加算器として動作するハードウェアをテストするので、ベクトルはIEEE 754標準に準拠します。floatからBigDecimalへの変換が危険なのですか?
とにかく、私の現在の生成計画では、浮動小数点値をBigDecimal
に変換し、必要な算術演算を行い、次に浮動小数点数に変換します。これは危険ですか?精度が失われ、テストベクタに不正確な結果が生じる可能性がありますか? BigDecimal
に変換したいので、丸めの問題を避けることができます。
これは結果を切り捨てますか?
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();
ここで、AおよびBは、いくつかのフロートです。
浮動小数点数はすべての小数を表すことができないため、確かに精度が失われます。 – anubhava
精度を失うことなくこれを達成できる方法はありますか? – Franklin
あなたはそれが必要な正確さはどれくらいですか? –