【问题标题】:How can I change this code to accept decimal values inside array?如何更改此代码以接受数组内的十进制值?
【发布时间】:2013-10-12 03:05:37
【问题描述】:

我的问题是如何让我的数组接受十进制值。 该代码适用于整数,但我需要针对十进制值进行调整。我尝试使用Convert.ToDecimal(Console.ReadLine()),但它不起作用。这是错误消息:

错误 1 ​​无法将类型“decimal”隐式转换为“int”。存在显式转换(您是否缺少演员表?)

问题是,如何在 for 循环中使用小数?

我真的需要它是这样的,因为我不需要为我的数组的值数量或类似的东西输入预值数字。我需要输入数组大小的数字,然后输入一个小数。

代码如下:

public int Unos_brojeva() 
{
    Console.WriteLine("Unesi broj clanova niza:");
    int [] broj = new int[Convert.ToInt32 (Console.ReadLine())];
    Console.WriteLine("Unesi brojeve:");
    for (int i = 0; i < broj.Length; i++)
    { 
        broj[i] = (Convert.ToInt32 (Console.ReadLine()));
    }

    Console.WriteLine("Unos je zavrsen");
    Console.ReadLine();
    return 0;
}

static void Main()
{
    BrojniNiz brojka;
    brojka = new BrojniNiz();
    brojka.Unos_brojeva();
}

【问题讨论】:

  • “但它不起作用” --- 我们现在需要猜测异常消息吗?

标签: c# arrays console decimal


【解决方案1】:

您是否尝试将其更改为十进制数组 (decimal[])?

decimal[] broj = new decimal[Convert.ToInt32(Console.ReadLine())];
for (int i = 0; i < broj.Length; i++)
{
    broj[i] = Convert.ToDecimal(Console.ReadLine());
}

【讨论】:

  • 谢谢兄弟。它有效。我尝试了不同的方法(但失败了)。只是为了让你知道我之前的尝试:decimal[] broj = new decimal[Convert.ToDecimal(Console.ReadLine()) ];抱歉我的英语很差。这是我在 2012 年使用 c# 和 VS express 的第三天。感谢您的帮助。
  • @VeljkoStefanovic 这很接近,但数组的大小必须int(或隐式可转换为int)。因此,您将大小读取为int,然后您可以将每个元素读取为double。快乐编码:)
【解决方案2】:

好的,如果您希望数组中的输入值是十进制,那么您应该将数组初始化为十进制数组。

int[] intArray = new int[<size of the array>];
decimal[] decimalArray = new decimal[<size of this array>];

希望有帮助。

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2011-07-02
    • 2020-03-16
    • 2022-01-04
    相关资源
    最近更新 更多