有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将字符串转换为浮点的数组会创建意外的返回。JAVA

我有一个2d数组,它是通过解析文件中的数据创建的。该方法将数据的每一部分发送到字符串。我正在尝试将数组从字符串转换为浮点。除了一列之外,所有的东西都打印得很好

例如:

2015/10/21,113.7600,42276880.0000,114.0000,115.5800,113.7000

2015/10/20,113.7700,48929200.0000,111.3400,114.1700,110.8200

2015/10/19,111.7300,29723750.0000,110.8000,111.7500,110.1100

转换为:

0.0 113.76 4.227688E7 114.0 115.58 113.7 

0.0 113.77 4.89292E7 111.34 114.17 110.82

0.0 111.73 2.972375E7 110.8 111.75 110.11 

date列将返回0.0,但第3列返回一个奇怪的响应。这是我的代码错误还是数据错误

将字符串数组转换为浮点数组方法

public void createDataArray(String [] [] n){
    for(int x=0;x<n.length;x++) {
        for(int y=0;y<n [x].length;y++) {
            switch(y) {
            case 0:
                dataArray[x] [y] = 0;
                break;
            case 1:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            case 2:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            case 3:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            case 4:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            case 5:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            case 6:
                dataArray[x] [y] = new Float(n[x] [y]);
                break;
            }
        }
    }
}

一种新的阵列打印方法

public void printArray() {
    for(int x=0;x<dataArray.length;x++) {
        for(int y=0;y<dataArray[x].length;y++) {
            System.out.printf("%s ", dataArray[x] [y]);
        }
        System.out.println();
    }
}

如果你想了解更多的信息,尽管问。我相当肯定数据有问题,但即使给它假值,它仍然会返回类似的响应


共 (2) 个答案

  1. # 1 楼答案

    根据您的要求,您必须使用%f来打印float/double

    例如:

    String[] floatNumbers = {"42276880.0000", "48929200.0000","29723750.0000"};
       
    for (String s: floatNumbers ) {
        Float temp = new Float(s);
        System.out.printf("%f\t", temp);
        System.out.println(temp);
    }
    

    输出:

    42276880.000000 4.227688E7

    48929200.000000 4.89292E7

    29723750.000000 2.972375E7

    Docs