删除java中的数值后的小数

Bim*_*mbz 3 java excel decimal

嗨我有一个excel文件读取应用程序,它读取文件中的每个单元格.

每当单元格包含数值时,应用程序就会将其视为数字单元格.

例如,单元格包含(40002547)应用程序将其视为数字单元格.我通过使用此代码获取值:

SONum = String.valueOf(cellSONum.getNumericCellValue());
Run Code Online (Sandbox Code Playgroud)

那很好用.我的问题是它在字符串的末尾附加小数.它将是(40002547.0).我需要它按原样.提前致谢

pax*_*blo 10

这是因为cellSONum.getNumericCellValue()返回浮点类型.如果调用之前将它强制为整数valueOf(),则应该以整数形式获取字符串表示形式,如果确实这是您想要的所有可能性:

SONum = String.valueOf((int)cellSONum.getNumericCellValue());
Run Code Online (Sandbox Code Playgroud)

您可以在以下代码中看到:

class Test {
    public static void main(String[]args) {
        double d = 1234;
        System.out.println(String.valueOf(d));
        System.out.println(String.valueOf((int)d));
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

1234.0
1234
Run Code Online (Sandbox Code Playgroud)

但是,如果您想要删除.0任何字符串的末尾但允许非整数值存活,您可以自己删除尾随文本:

class Test {
    public static void main(String[]args) {
        double d1 = 1234;
        double d2 = 1234.567;
        System.out.println(String.valueOf(d1).replaceFirst("\\.0+$", ""));
        System.out.println(String.valueOf(d2).replaceFirst("\\.0+$", ""));
    }
}
Run Code Online (Sandbox Code Playgroud)

该片段输出:

1234
1234.567
Run Code Online (Sandbox Code Playgroud)