-2

我是 Java 的初学者,我有一个关于在数组中使用命令行参数行的问题,例如,我尝试输入:

double []a=Double.parseDouble(args[0]);

但是,它说“无法将双精度转换为双精度”,我无法弄清楚,因为我可以做到

double a=Double.parseDouble(args[0]);

那么在数组中使用 CL 参数输入有什么问题呢?谢谢

4

3 回答 3

2

简单地说,Double.parseDouble()返回 adouble而不是 a double[],因此您不能将其分配给 type 的变量double[]

如果要将所有字符串转换argsdoubles,可以尝试类似

double[] a = new double[args.length];
for (int i = 0; i < args.length; i++) {
    a[i] = Double.parseDouble(args[i]);
}

当然,如果您只想要args[0],则将解析后double的内容存储在第二个片段中;在这种情况下使用数组没有多大意义。

于 2013-08-24T14:58:57.630 回答
1

但是,它说“无法将双精度转换为双精度”,我无法弄清楚,因为我可以做到

实际上说的是“无法转换doubledouble[]”。这[]对于错误消息的含义至关重要......你不应该忽略它。

它告诉您不能将 adouble视为double.


如果要初始化 a double[],需要先分配一个double数组;例如

double [] a = new double[1];
a[0] = Double.parseDouble(args[0]);

或者你可以在一个声明中做到这一点:

double [] a = new double[]{Double.parseDouble(args[0])};

甚至

double [] a = {Double.parseDouble(args[0])};
于 2013-08-24T14:58:51.293 回答
0

它必须是一个分配的数组...

例如

double[] a = new double[] { Double.parseDouble(args[0]) };
于 2013-08-24T14:57:55.097 回答