我正在尝试上传一个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

10-08 06:52