Tôi đang trong quá trình tạo một chương trình tạo các vectơ thử nghiệm được sử dụng trong một testbench VHDL. Testbench về cơ bản kiểm tra một phần cứng hoạt động như một trình bổ sung điểm chính xác đơn lẻ, do đó các vectơ sẽ tuân theo chuẩn IEEE 754.Chuyển đổi từ phao sang BigDecimal sau đó có nguy hiểm không?
Dù sao, kế hoạch hiện tại của tôi cho thế hệ là chuyển đổi giá trị phao sang BigDecimal
, thực hiện các arithmatic cần thiết, sau đó chuyển trở lại float. Điều này có nguy hiểm không? Độ chính xác có bị mất dẫn đến kết quả có khả năng không chính xác trong vectơ thử nghiệm không? Tôi muốn chuyển đổi thành BigDecimal
, vì vậy tôi có thể tránh các vấn đề làm tròn.
Vì vậy, điều này có thể cắt ngắn kết quả không?
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();
Trong trường hợp A và B nổi lên.
Bạn chắc chắn sẽ mất một số độ chính xác vì phao không thể đại diện cho tất cả các số phân số có thể. – anubhava
Có cách nào mà tôi có thể thực hiện điều này bằng cách không mất bất kỳ độ chính xác nào không? – Franklin
Bạn cho rằng bạn cần nó chính xác đến mức nào? –