Console.ReadLine中只接受小数和数字

本文关键字:小数 数字 ReadLine Console | 更新日期: 2023-09-27 18:20:28

我刚刚制作了一个程序,在给定数量和价格的情况下计算一个或多个项目的总成本。我担心的一个问题是在项目成本字段中,它根本不接受小数。我也希望这两个字段都不接受信件。我看到了一些关于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);
        }
    }
}

Console.ReadLine中只接受小数和数字

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

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

您需要使用小数而不是int,要获得值,只要它不是有效的小数,就可以要求它,就像这个答案中那样。需要帮助接受C中的小数作为输入#你可以像这样直接使用:

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

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