Oracle의 BINARY_DOUBLE과 Java의 Double은 IEEE 754 표준을 사용합니다.Oracle과 Java (IEEE 754)의 double 값 차이
그러나 정확도에는 차이가 있습니다. 예컨대 값
:
456.67d
오라클 :
declare
a BINARY_DOUBLE := 456.67d;
begin
SYS.DBMS_OUTPUT.PUT_Line(TO_CHAR(a,'9.99999999999999999999EEEE'));
end;
결과 : 4.56670000000000020000E + 02
자바 :
Double d = 456.67d;
DecimalFormat formatter = new DecimalFormat("0.000000000000000000000E000");
System.out.println(formatter.format(d));
결과 : 4.566700000000000000000E002
자바의 값은 오라클에서만큼 정확하지 않습니다.
4.56670000000000015916157281026E2
그래서 자바의 정확성에 오라클처럼 동일하지 않은 이유 :
온라인 컨버터는 456.67d에 대한 가장 정확한 표현이 있다고? 그리고 어떻게하면 Java에서보다 정확한 값을 얻을 수 있습니까?