如何解析String中的double值并进行比较?

时间:2015-08-27 03:39:04

标签: java

我有这段代码

String info = ...;
info = info +"  "+gst;

info存储3个gst double数据类型值。我想读取这些值,比较它们,我想显示最大值,平均值和总共3个值。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

首先:解析双

eg:  String gst_="3";
     Double gst=Double.parseDouble(gst_);

答案 1 :(得分:0)

请参阅以下代码:
1)让我们说你的字符串信息包含由|。分隔的双值 2)使用|分割存储在info中的3个值并将它们存储在字符串数组中 3)现在迭代数组,将字符串值转换为double,保持加总值并将每个double值放在一个double数组中。
4)现在找出max,你可以使用Math.max方法,它可以取两个double值 5)平均值可以通过sum / array.length找到,即在你的情况下为3。

注意: - double有舍入问题,所以考虑将double值四舍五入到特定的小数点。

public static void main(String[] args){
        //Let say your info contains 3 double values
        //separated by | 
        String info="23.00|43.23|32.22";
        //splitting the info by |
        String[] infoArray=info.split("\\|");
        double sum=0;
        double[] doubleArray=new double[3];
        try{
        int index=0;    
        for(String s: infoArray){
            //converting each value to double
            double val=Double.parseDouble(s);
            sum=sum+val;
            doubleArray[index]=val;
            index++;
        }
        }
        catch(NumberFormatException nfe){
            System.out.println("Not a valid double value:"+nfe.getMessage());
        }
        System.out.println("Maximum:"+Math.max(doubleArray[0], Math.max(doubleArray[1], doubleArray[1])));
        System.out.println("sum:"+sum);
        double avg=sum/infoArray.length;
        System.out.println("Average:"+avg);

    }

Output:-
Maximum:43.23
sum:98.44999999999999
Average:32.81666666666666