Valores do excel estão sendo importados diferente da planilha

Essa aqui é a classe, funciona perfeitamente bem…
private static List upload(File file) throws IOException {
List listaDadosPlanilha = new ArrayList<>();

     // pegando o arquivo
     FileInputStream arquivo = new FileInputStream(file);
     // *.XLS
     HSSFWorkbook hworkbook;
     // *.XLSX
     XSSFWorkbook xworkbook;
     Sheet sheet;

     if (FilenameUtils.getExtension(file.toString()).equalsIgnoreCase("xls")) {
          hworkbook = new HSSFWorkbook(arquivo);
          
          // Selecionando a Aba
          sheet = hworkbook.getSheetAt(0);

     } else {
          xworkbook = new XSSFWorkbook(arquivo);
          // Selecionando a Aba
          sheet = xworkbook.getSheetAt(0);
     }
     

     // setando as linhas
     rows = (List<Row>) toList(sheet.iterator());
     
     // PERCORRENDO A LINHA
     rows.forEach(row -> {
          try {
               if (row.getCell(0).getCellType().toString() != "BLANK") {
                    List<Cell> cells = (List<Cell>) toList(row.cellIterator());
                    String linha = "";
                    for (Cell dado : cells) {
                        try {
                             if (dado.getCellType().toString() == "BLANK") {
                                  break;
                             }
                             switch (dado.getCellType().toString()) {
                             case "STRING":
                                  linha += "    " + dado.getStringCellValue();
                                  break;
                             case "NUMERIC":
                                  linha += "    " + dado.getNumericCellValue();
                                  break;
                             case "BOOLEAN":
                                  linha += "    " + dado.getBooleanCellValue();
                                  break;
                             case "FORMULA":
                                  linha += "    " + dado.getCachedFormulaResultType().toString();
                                  break;
                             case "DATE":
                                  linha += "    " + dado.getDateCellValue();
                                  break;
                             }
                        } catch (Exception e) {
                             e.getMessage();
                        }
                    }
                    listaDadosPlanilha.add(linha);
                    

               }
          } catch (Exception e) {
          }
     });
     arquivo.close();
     return listaDadosPlanilha;
 }

Porem… uma magica acontece nessa linha aqui.
List cells = (List) toList(row.cellIterator());

A variável row traz:

0 234234234 123

Perfeito!

E joga na variável cells, que magicamente traz:
teste, 2.34234234E8, 123.0

Veja que está diferente! O valor está com um ponto e com E8… Creio que o getnumeric tenha alguma limitação a quantidade de algarismos e ele transforma essa variável como se fosse expoente, ou algo assim… a questão é… como consertar isso?

Pessoal, encontrei a resposta, BASTA COLOCAR UM INT ANTES DO DADO.GETNUMERIC

case “NUMERIC”:
linha += " " + (int)dado.getNumericCellValue();
break;