【问题标题】:Accepting only decimals and numbers in Console.ReadLine在 Console.ReadLine 中只接受小数和数字
【发布时间】:2016-02-03 02:21:00
【问题描述】:

我刚刚编写了一个程序来计算给定数量和价格的一个或多个项目的总成本。我担心的一个问题是“项目成本”字段,它根本不接受小数。我也希望这两个领域都不接受信件。我看到了一些关于TryParse 的东西,但我不确定如何使用它以及它是如何工作的。任何帮助表示赞赏。 这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QuantityPrice
{
    class Program
    {
        static void Main(string[] args)
        {
            int Quantity;
            int Cost;
            Console.WriteLine("How much is the item you are buying? (In Canadian Dollars)");
            Cost = int.Parse(Console.ReadLine());
            Console.WriteLine("How many of the item are you buying? (In Canadian Dollars)");
            Quantity = int.Parse(Console.ReadLine());
            var TotalCost = Quantity * Cost * 1.13;
            Console.WriteLine("Your total cost is:");
            Console.WriteLine("$" + TotalCost);
            Console.ReadLine();
            System.Threading.Thread.Sleep(100000);
        }
    }
}

【问题讨论】:

  • 我该怎么做?它给了我一个错误
  • @ValidBass 只需批准我的编辑即可。
  • 我该怎么做?抱歉,新来的
  • @ValidBass 在您的代码的每一行前面放置 4 个空格,就会出现如上所示。欢迎来到 SO :)

标签: c#


【解决方案1】:

问题是您使用int.Parse 从用户输入中提取值。 int 类型仅适用于整数。如果您想处理小数,请使用floatdouble(用于需要浮点小数点的一般数学)或decimal(用于货币等定点算术)。

作为一般样式注释,变量名使用“camel case”(以小写字符开头)而不是“Pascal case”(以大写字符开头)。

【讨论】:

    【解决方案2】:

    您需要使用小数而不是 int 并获取该值,只要它不是像此答案 Need help with accepting decimals as input in C# 中的有效小数,就可以要求它 你可以像这样直接使用:

    var cost = RequestDecimal("How much is the item you are buying? (In Canadian Dollars)");
    

    使用等效函数获取数量的 int

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2016-03-07
      • 2017-09-14
      相关资源
      最近更新 更多