Ich mache gerade ein Programm, das Testvektoren generiert, die in einer VHDL-Testbench verwendet werden. Die Testbench testet im Wesentlichen eine Hardware, die als Gleitkommaaddierer mit einfacher Genauigkeit arbeitet, so dass die Vektoren dem IEEE 754-Standard entsprechen.Ist es gefährlich, von float zu BigDecimal zu konvertieren, dann zurück?
Wie auch immer, ist mein derzeitiger Plan für die Generierung Float-Werte in BigDecimal
zu konvertieren, das notwendige arithmatic zu tun, dann zurück zu Float zu konvertieren. Ist das gefährlich? Wird die Genauigkeit verloren gehen, was zu einem möglicherweise ungenauen Ergebnis im Testvektor führt? Ich möchte zu BigDecimal
konvertieren, damit ich Rundungsprobleme vermeiden kann.
Also würde dies das Ergebnis verkürzen?
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();
Wo A und B sind einige float.
Sie werden definitiv einige Genauigkeit verlieren, da ein Float nicht alle möglichen Bruchzahlen darstellen kann. – anubhava
Gibt es eine Möglichkeit, dies zu erreichen, indem ich keine Präzision verliere? – Franklin
Wie genau denken Sie, dass Sie es brauchen? –