我正在尝试上传一个Excel字段,该字段的列包含250多个数字。当我在excel中输入值时,它会自动将其转换为这种格式
1.23456789012345E + 256并且当我尝试使用Big Decimal的toPlainString方法读取值时,它在15位数字之后返回全0。如果我给出不带指数的整数,同样可以正常工作。
输入为1.23456789012345E + 256时,如何获取整数?
BigDecimal bd = new BigDecimal(String.valueOf("1.23456789012345E+256"));
System.out.println( bd.toPlainString());
返回的字符串
* 123456789012345 * 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
最佳答案
输入为1.23456789012345E + 256时如何获取整数
那就是BigDecimal的整数。
1.23456789012345E + 256 == 12345678901234500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
为什么要使用BigDecimal? Excel使用double
,保留它使用的类型会更有意义。
double d = 1.23456789012345E+256;
System.out.println(d);
版画
1.23456789012345E256