英文:
When reading cell data from excel in java it returns decimal value
问题
我正在尝试从Excel文件中读取数值。字段中的值为7430031259,我使用了以下代码
item_code = cell.toString();
来获取该值,但输出结果却是7.430031259E9。
有什么解决办法吗?
英文:
I am trying to read values from the excel file. The value in field is 7430031259, I used the code
item_code = cell.toString();
to get the value, but the output is like this 7.430031259E9.
How to solve this?
答案1
得分: 3
获取Apache POI中单元格值的最佳可能性是使用专为此目的设计的方法(toString()
不是)。
这意味着如果您期望直接获得数字单元格的值,您应该直接接收它:
double numericValue = cell.getNumericCellValue();
应该可以实现您想要的效果。
有关更多有用的方法,请查阅XSSFCell
的JavaDocs。
如果您仍然希望在科学/指数表示法中使用cell.toString()
与表示为数字值的String
表示形式,您可以使用BigDecimal
作为中间结果:
BigDecimal bdItemCode = new BigDecimal(cell.toString());
// 获取其double值
double dblItemCode = bdItemCode.doubleValue();
// 或获取普通表示法的字符串
String strItemCode = bdItemCode.toPlainString();
英文:
The best possibility of getting a cell value in apache poi is to use the methods that are meant for this purpose (toString()
of a cell isn't).
That means you should directly receive a numeric cell value if you are expecting it:
double numericValue = cell.getNumericCellValue();
should do what you are trying to achieve.
Check the the JavaDocs of XSSFCell
for more useful methods.
For the case you still want to use cell.toString()
with a String
representation of a numeric value in scientific / exponential notation, you can use a BigDecimal
as an intermediate result:
BigDecimal bdItemCode = new BigDecimal(cell.toString());
// get the double value of it
double dblItemCode = bdItemCode.doubleValue();
// or get a String in plain notation
String strItemCode = bdItemCode.toPlainString();
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论