Я нахожусь в процессе создания программы, которая генерирует тестовые векторы для использования в тестовом стенде VHDL.Тестовый стенд, по сути, тестирует аппаратное обеспечение, которое действует как сумматор с плавающей запятой одинарной точности, поэтому векторы будут соответствовать стандарту IEEE 754.
В любом случае, мой текущий план генерации состоит в том, чтобы преобразовать значения с плавающей запятой в 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 — число с плавающей запятой.