问题:
正在检查并插入8个孩子的身高 将8个双精度值插入控制台,并制作算法以找出最低高度和最小值。最大高度。
所以这就是我所做的:
class work1 {
public static void Main(String[] args) {
string[] height = Console.ReadLine().Split(' ');
double[] heightInDouble = new Double[height.Length];
for (int i = 0; i <= height.Length; i++) {
heightInDouble[i] = (double) height[i]; // line 20
}
Console.WriteLine("Highest: " + heightInDouble.Max() + " Lowest: " + heightInDouble.Min());
}
}
结果:
错误:无法将类型'string'转换为'double'(20)
如何将字符串转换为双倍值?
答案 0 :(得分:3)
你不能直接从字符串转换为double。使用double.Parse
:
realInts[i] = double.Parse( ints[i] );
您可能还想使用TryParse
,因为此处不确定该字符串实际上是一个数字:
double parsedValue;
realInts[i] = double.TryParse(ints[i], out parsedValue) ? parsedValue : 0;
还有一点需要注意:您可以使用Linq表达式链简化语法:
double parsedVal;
double[] realInts = Console.ReadLine().Split(' ')
.Select(str => double.TryParse(str, out parsedVal) ? parsedVal : 0)
.ToArray();
答案 1 :(得分:1)
试试这个。
static void Main(string[] args)
{
string[] ints = Console.ReadLine().Split(' ');
double[] realInts = new Double[ints.Length];
for (int i = 0; i <= ints.Length; i++)
{
double val;
if (Double.TryParse(ints[i], out val))
{
realInts[i] = val; // line 20
}
else
{
// Unable to parse
realInts[i] = 0;
}
}
}
答案 2 :(得分:0)
使用此代码
class work1
{
public static void Main(String[] args)
{
string[] height = Console.ReadLine().Split(' ');
double[] heightInDouble = new Double[height.Length];
for (int i = 0; i < height.Length; i++)
{
heightInDouble[i] = Convert.ToDouble(height[i]); // line 20
}
Console.WriteLine("Highest: " + heightInDouble.Max() + " Lowest: " + heightInDouble.Min());
Console.ReadLine();
}
}