我正在尝试将Integer
转换为Double
,但Java会给我错误的结果,我相信由于溢出。
Integer ii = -123456789;
Double dd = ii.DoubleValue();
System.out.println(dd);
我期待收到-123456789.0,但我得到-1.23456789E8。
有没有办法摆脱小数位数以获得整数部分的小范围?或者是另一种范围更大的数据类型?
PS。我从另一种语言转换代码,允许使用相同数量的可变字节。
答案 0 :(得分:2)
而不是double
尝试使用BigDecimal
Integer ii = -123456789;
BigDecimal dd = new BigDecimal(ii);
System.out.println(dd);