我想从Excel读取数据 - 只有数字,所以我可以稍后比较,我进入循环,我有这样的代码:
int type = cell.getCellType();
switch(type){
case 0:
int value = (int)cell.getNumericCellValue();
case 1:
String temp = cell.getStringCellValue();
int value = Integer.parseInt(temp);
}
它是这样的,因为有时Excel中的数据有数字类型,有时是字符串类型。
现在我的问题。向int
施展是个好主意吗?
如果我在类型为1.200
的单元格中有号码String
,那么它就是" 1.200"如何将其转换为int
(或float
,如果它更好)?最好的方法是什么?
我需要的只是 - 数字(有时来自String
单元格类型)所以我可以将它与来自另一个数据源的数字进行比较。
答案 0 :(得分:3)
CellType.Numeric
指的是内容包含整数,分数或日期的单元格。
因此,如果您正在阅读可能具有多个特定数字类型的单元格,那么您将需要进一步开展工作以缩小分类范围。
getNumericCellValue()
返回double
(假设该单元格类型为CellType.Numeric
)
将此double
投射到int
将导致小数和删除后的所有数字。因此1.200
将成为1
。因此,在您的情况下,将其作为float
投射更好。如果你想确保没有精确度的损失,那么根本不要施展;只需将其另存为double
。