我需要创建一个控制台应用程序,如下图所示。Console Application
问题是,当我用$输入每小时费率时,会发生System.FormatException错误。它还说输入字符串的格式不正确。
以下是导致问题的代码片段
double rate = 0;
Console.Write("Enter the hourly rate: ");
rate = double.Parse(Console.ReadLine());
这是整个计划
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ICA2_Mason_Clarke
{
class Program
{
static void Main(string[] args)
{
int hoursWorked = 0;
Console.Write("Enter the hours worked: ");
hoursWorked = int.Parse(Console.ReadLine());
double rate = 0;
Console.Write("Enter the hourly rate: ");
rate = double.Parse(Console.ReadLine());
int taxRate = 0;
Console.Write("Enter the tax rate as a percent: ");
taxRate = int.Parse(Console.ReadLine());
double grossPay = rate * hoursWorked;
Console.Write("Gross pay : $");
Console.WriteLine(grossPay);
double taxesDue = grossPay * taxRate / 100;
Console.Write("Taxes due : $");
Console.WriteLine(taxesDue);
double netPay = grossPay - taxesDue;
Console.Write("Net pay : $");
Console.WriteLine(netPay);
Console.Write("Press any key to continue");
Console.Read();
}
}
}
答案 0 :(得分:3)
您可以使用 double.TryParse 重载来允许货币符号并获取数字。
double d;
double.TryParse("$20.00", NumberStyles.Number | NumberStyles.AllowCurrencySymbol, CultureInfo.CurrentCulture, out d);
Console.WriteLine(d);
答案 1 :(得分:1)
您只需更改输入行:
Console.Write("Enter the hourly rate: $");
行:
double.Parse(...)
在解释货币
的上一个问题的链接中进行了解释答案 2 :(得分:0)
您可以使用语法@"..."
来表示C#中的字符串文字,或者您可以使用字符\
来转义保留的格式字符。
例如:
Console.Write(@"Gross pay : $");