我正在尝试上传一个列包含超过 250 位数字的 Excel 字段。当我在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*000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000
最佳答案
How do I get the entire number when the input is 1.23456789012345E+256
这是作为 BigDecimal 的整个数字。
1.23456789012345E+256 == 1234567890123450000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000
为什么要使用 BigDecimal? Excel 使用 double
,保留它使用的类型会更有意义。
double d = 1.23456789012345E+256;
System.out.println(d);
打印
1.23456789012345E256
关于java - Bigdecimal 转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11536403/