Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解析字符串中的双值并进行比较?_Java - Fatal编程技术网

Java 如何解析字符串中的双值并进行比较?

Java 如何解析字符串中的双值并进行比较?,java,Java,我有这个密码 String info = ...; info = info +" "+gst; 此info存储3个gstdouble数据类型值。我想读取这些值,比较它们,我想显示3个值的最大值、平均值和总和 我该怎么做?首先:解析双精度 eg: String gst_="3"; Double gst=Double.parseDouble(gst_); 第一:解析double eg: String gst_="3"; Double gst=Double.parseDo

我有这个密码

String info = ...;
info = info +"  "+gst;
info
存储3个gst
double
数据类型值。我想读取这些值,比较它们,我想显示3个值的最大值、平均值和总和

我该怎么做?

首先:解析双精度

eg:  String gst_="3";
     Double gst=Double.parseDouble(gst_);
第一:解析double

eg:  String gst_="3";
     Double gst=Double.parseDouble(gst_);
您可以在空白处使用,然后使用

希望这有帮助

您可以在空白处使用,然后使用

希望这有帮助

请参见下面的代码:
1) 假设字符串信息包含两个由|分隔的值。
2) 使用|拆分信息中存储的3个值,并将它们存储在字符串数组中。
3) 现在迭代数组,将字符串值转换为double,继续在sum中累加值,并将每个double值放在double数组中。
4) 现在要查找最大值,可以使用Math.max方法,该方法可以接受两个双值。
5) 在您的情况下,可以通过sum/array.length(即3)找到平均值

注意:-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
请参见下面的代码:
1) 假设字符串信息包含两个由|分隔的值。
2) 使用|拆分信息中存储的3个值,并将它们存储在字符串数组中。
3) 现在迭代数组,将字符串值转换为double,继续在sum中累加值,并将每个double值放在double数组中。
4) 现在要查找最大值,可以使用Math.max方法,该方法可以接受两个双值。
5) 在您的情况下,可以通过sum/array.length(即3)找到平均值

注意:-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

Double#parseDouble
可能是一个好的开始。有几种方法可以做到这一点:1)使用
扫描仪和
readDouble
方法。2) 拆分
字符串
,然后使用
new Double(String)
从每个新字符串创建
Double
实例。3) 拆分
Sting
,然后使用
new BigDecimal(string)
从每个新字符串创建
BigDecimal
实例。我使用了扫描仪,但只能读取第一个值“此信息存储3个gst双数据类型值”,gst在这行中的意思是什么?感谢您的更正和您的回复
Double#parseDouble
可能是一个好的开始。有几种方法可以做到这一点:1)使用
扫描仪
和方法
readDouble
。2) 拆分
字符串
,然后使用
new Double(String)
从每个新字符串创建
Double
实例。3) 拆分
Sting
,然后使用
new BigDecimal(string)
从每个新字符串创建
BigDecimal
实例。我使用了扫描仪,但只能读取第一个值“此信息存储3个gst双数据类型值”,gst在这行中的意思是什么?感谢您的更正和回复。请描述问题并在提问之前进行适当搜索。为什么在
gst\uuu
中使用下划线?@Shuai您正确理解问题了吗?如果有,请向我解释或对问题进行编辑。请在提问之前描述问题并进行适当搜索。为什么在
gst\uu
中使用下划线?@Shuai您正确理解问题了吗?如果你有,请解释给我,或进行编辑的问题。