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;
結果:+ 02 4.56670000000000020000E
Javaの:
Double d = 456.67d;
DecimalFormat formatter = new DecimalFormat("0.000000000000000000000E000");
System.out.println(formatter.format(d));
結果:Javaで4.566700000000000000000E002
値は、Oracleほど正確ではありません。なぜJavaの精度でOracleのように同じではありません
4.56670000000000015916157281026E2
:?
オンラインコンバータは、456.67dのための最も正確な表現であることを言いましたか そして、私はどのようにJavaでより正確な価値を得ることができますか?