在自动化我们的内部应用程序时,在显示excel文件中的数值时遇到了一个问题--使用Selenium (使用Java和TestNG框架)自动化应用程序。
发行:
输入xlsx文件如下:
控制台中的输出:
下面是代码片段,请您告知是什么使代码显示这个意外的输出。
如有需要,请告知:
        int row;
        row = sheet.getLastRowNum() + 1;
        for (int i = 1; i < row; i++)
        {
            sheet.getRow(i).getCell(1).setCellType(Cell.CELL_TYPE_NUMERIC);
            double data = sheet.getRow(i).getCell(1).getNumericCellValue();
            System.out.println("Data: " + data);
        }请查找在http://1drv.ms/1K7XQqO](http://1drv.ms/1K7XQqO])[_ OneDrive ]中共享的输入文件
发布于 2015-05-14 12:26:46
因为你用的是双倍。
来自JLS 3.10.2.浮点文字
浮点文字有以下几个部分:整数部分、十进制或十六进制点(用ASCII句号字符表示)、分数部分、指数和类型后缀。
double data = sheet.getRow(i).getCell(1).getNumericCellValue();来自原始数据类型
双数据类型是一种双精度64位IEEE 754浮点.它的值范围超出了本讨论的范围,但在Java语言规范的浮点类型、格式和值部分中指定。对于十进制值,这种数据类型通常是默认的选择。如前所述,这种数据类型永远不应该用于精确值。
使用int。
发布于 2015-05-14 12:31:02
当打印到控制台时,有某种形式的"System.out.println“使用。顺便说一下,这是默认的字符串表示形式,请检查以下链接:https://docs.oracle.com/javase/tutorial/essential/io/formatting.html
https://stackoverflow.com/questions/30237331
复制相似问题