Estoy en el proceso de crear un programa que genere vectores de prueba para usar en un banco de pruebas VHDL. El banco de pruebas esencialmente prueba una pieza de hardware que actúa como un único sumador de punto flotante de precisión, por lo que los vectores se ajustarán al estándar IEEE 754.¿Es peligrosa la conversión de flotador a BigDecimal y viceversa?
De todos modos, mi plan actual de generación es convertir los valores de flotación a BigDecimal
, hacer el aritmático necesario, luego convertir de nuevo a flotación. ¿Esto es peligroso? ¿Se perderá la precisión dando como resultado un resultado potencialmente inexacto en el vector de prueba? Quiero convertir a BigDecimal
, por lo que puedo evitar problemas de redondeo.
¿Esto truncaría el resultado?
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();
Donde A y B flotan.
Definitivamente perderá un poco de precisión ya que un flotador no puede representar todos los números fraccionarios posibles. – anubhava
¿Hay alguna manera de lograr esto sin perder precisión? – Franklin
¿Cuán preciso crees que es necesario que sea? –