【问题标题】:Attempting to convert a string to an int (C#)尝试将字符串转换为 int (C#)
【发布时间】:2014-11-16 04:33:13
【问题描述】:

我正在尝试学习 c# 编码(或任何相关代码)的基础知识。我不明白如何接受用户输入并将其放入我以后可以用作整数的字符串中。我以为我可以这样写

string baseOfTriange = int.Parse(Console.ReadLine));

但它不起作用。我也尝试过浮动思考,也许就是这样,但是,我只是迷失了这个概念。这就是我到目前为止所拥有的,我只是不知道如何将字符串转换为 int。感谢您的帮助。

static void Main(string[] args)
{
    // area of a triangle = base(height)/2

    Console.WriteLine("Welcome, enter your triangle dimensions. ");
    Console.WriteLine();

    Console.Write("What is the base of the triangle? ");
    string baseOfTriangle = int.Parse(Console.ReadLine());
    Console.WriteLine("You answered, " + baseOfTriangle + ". ");

    Console.Write("What is your height of the triangle? ");
    string heightOfTriangle = int.Parse(Console.ReadLine());
    Console.WriteLine("You answered, " + heightOfTriangle + ". ");

    Console.WriteLine("The area of the triangle is " + (baseOfTriangle * heightOfTriangle / 2));
    Console.ReadLine();
}

【问题讨论】:

  • int baseOfTringe = int.Parse(Console.ReadLine));
  • 这段代码能编译吗?还是在运行时出现异常?
  • 通过用 int 替换 string,我能够正确运行它。我无法将字符串转换为整数并将其存储在字符串变量中。抱歉,我对此很陌生。

标签: c# string int


【解决方案1】:

我假设您因为以下行而遇到编译时错误:

string baseOfTriangle = int.Parse(Console.ReadLine());

int.Parse 的返回类型是int,但您试图将其分配给string 类型的变量。将 baseOfTriangleheightOfTriangle 的类型更改为 int 即可解决您的问题。

int baseOfTriangle = int.Parse(Console.ReadLine());
^^^

另外,您可能想要一个浮点答案。否则1*1/2 会给你一个0 的答案。把它改成baseOfTriangle * heightOfTriangle / 2.0。或者更好的是使用doubledouble.Parse

【讨论】:

    【解决方案2】:

    查看 C# 编程指南:如何:将字符串转换为数字: http://msdn.microsoft.com/en-us/library/bb397679.aspx

    还可以查看用于 c# 的大多数内置数字类型的 TryParse 方法。例如,int32.TryParse(): http://msdn.microsoft.com/en-us/library/system.int32.tryparse(v=vs.110).aspx

    【讨论】:

      【解决方案3】:
      static void Main(string[] args)
      {
          Console.Write("What is the base of the triangle? ");
          int baseOfTriangle = int.Parse(Console.ReadLine());
      
          Console.Write("What is your height of the triangle? ");
          int heightOfTriangle = int.Parse(Console.ReadLine());
      
          Console.WriteLine("The area of the triangle is {0}", (baseOfTriangle * heightOfTriangle) / 2);
          Console.ReadLine();
      }
      

      【讨论】:

      • 谢谢,所以我假设 {0} 是我所缺少的 - 我要查找什么来了解更多信息?我昨天才刚开始,我相信我会在课堂上学到更多,只是想弄乱它并为自己学习更多。
      • 最重要的是您正在读取一个字符串,将其解析为一个 int,然后尝试将其存储为一个字符串。稍后,您将 2 个字符串等(:O)相乘,然后使用字符串连接(+ 号)来打印您的答案。 {0} 只是出于各种原因格式化字符串的更好方法,特别是当您要打印的输出类型不是字符串时。请参阅以下关于字符串格式化的链接 - msdn.microsoft.com/en-us/library/… 请注意,它适用于 .Net 中许多地方的格式化字符串,而不仅仅是 String.Format
      【解决方案4】:

      转换为 int 的常用方法是使用 Convert.ToInt32()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        相关资源
        最近更新 更多