Java 将负整数转换为双精度给出错误的结果
Java casting negative Integer to Double gives wrong result
我正在尝试将 Integer
转换为 Double
,但 Java 给出了错误的结果,我相信是由于溢出。
Integer ii = -123456789;
Double dd = ii.DoubleValue();
System.out.println(dd);
我希望收到 -123456789.0,但我收到的却是 -1.23456789E8。
有没有办法去掉小数点,从而在整数部分增加一点范围?或者范围更大的其他数据类型?
PS。我正在从另一种允许使用相同数量的可变字节的语言转换代码。
而不是 double
试试 BigDecimal
Integer ii = -123456789;
BigDecimal dd = new BigDecimal(ii);
System.out.println(dd);
我正在尝试将 Integer
转换为 Double
,但 Java 给出了错误的结果,我相信是由于溢出。
Integer ii = -123456789;
Double dd = ii.DoubleValue();
System.out.println(dd);
我希望收到 -123456789.0,但我收到的却是 -1.23456789E8。
有没有办法去掉小数点,从而在整数部分增加一点范围?或者范围更大的其他数据类型?
PS。我正在从另一种允许使用相同数量的可变字节的语言转换代码。
而不是 double
试试 BigDecimal
Integer ii = -123456789;
BigDecimal dd = new BigDecimal(ii);
System.out.println(dd);