在Java中读取Excel时,如果整数被读取为小数,很可能是由于使用的读取工具的类型转换机制造成的。
实际上,Excel 会将所有数字默认存储为双精度浮点数,因此读取工具在读取数字时也必须使用双精度浮点数。但是,在转换为Java的数据类型时,如果使用了不当的数据类型(例如整数),则可能导致精度丢失,从而导致整数变成小数。
要解决这个问题,您可以使用BigDecimal类,它是Java中用于处理精确数字的类。在读取数字时,您可以将其读取为BigDecimal,然后根据需要转换为所需的数据类型。
例如:
BigDecimal number = new BigDecimal(cell.getNumericCellValue()); int intValue = number.intValue(); double doubleValue = number.doubleValue();