如何解决“输入字符串格式不正确”的问题?
本文关键字:不正确 格式 问题 字符串 输入 何解决 解决 | 更新日期: 2023-09-27 18:06:52
这是我的第一个项目之一,它甚至抄袭了一本丹麦初学者的书,我反复检查了几次,它们是一样的,但似乎仍然有一个错误。
using System;
namespace Amount_and_price
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Write the price here ");
String text = Console.ReadLine();
double price = Convert.ToDouble(text);
Console.WriteLine("Write the amount here ");
text = Console.ReadLine();
int quantity = Convert.ToInt32(text);
double amount = price * quantity;
double vat = amount * 0.25;
double total = amount + vat;
Console.WriteLine("{0, -15} { 1, 10:F}", "Pris på varen", price);
Console.WriteLine("{0, -15} { 1, 10:D}", "Antal styk", quantity);
Console.WriteLine("{0, -15} { 1, 10:F}", "Pris eks. moms", amount);
Console.WriteLine("{0, -15} { 1, 10:F}", "Moms", vat);
Console.WriteLine("{0 -15} { 1, 10:F}", "Total pris, inkl. moms", total);
}
}
}
我需要改变什么,所以错误"输入字符串格式不正确"不出现?
在Console.WriteLine
语句中,左括号和参数号之间不能有空格。所有的控制台。WriteLine语句需要随此更改进行修改。下面是解释
错误代码
Console.WriteLine("{0, -15} { 1, 10:F}", "Pris på varen", price);
正确的代码
Console.WriteLine("{0,-15} {1,10:F}", "Pris på varen", price);
最后一个Console.WriteLine
语句缺少逗号(正如@Berkay所指出的)
错误代码
Console.WriteLine("{0 -15} {1, 10:F}", "Total pris, inkl. moms", total);
右代码
Console.WriteLine("{0,-15} {1,10:F}", "Total pris, inkl. moms", total);
空格,需要的地方缺少逗号。你可以分享https://dotnetfiddle.net/z8q1he。人们很容易摆弄你的代码。
public static void Main(string[] args)
{
Console.WriteLine("Write the price here ");
String text = Console.ReadLine();
double price = Convert.ToDouble(text);
Console.WriteLine("Write the amount here ");
text = Console.ReadLine();
int quantity = Convert.ToInt32(text);
double amount = price * quantity;
double vat = amount * 0.25;
double total = amount + vat;
Console.WriteLine("{0, -15} {1, 10:F}", "Pris pa varen", price);
Console.WriteLine("{0, -15} {1, 10:D}", "Antal styk", quantity);
Console.WriteLine("{0, -15} {1, 10:F}", "Pris eks. moms", amount);
Console.WriteLine("{0, -15} {1, 10:F}", "Moms", vat);
Console.WriteLine("{0, -15} {1, 10:F}", "Total pris inkl. moms", total);
}
在没有进行大量测试的情况下,我会说:double price = Convert.ToDouble(text);也很危险,因为很难知道它是否期望逗号或句点作为小数分隔符-这将给出确切的错误,所以尝试使用int,或者尝试逗号和句点来测试是否有差异……并考虑通过设置线程
代码中有一些语法错误。最后的Console.WriteLine
方法调用使用字符串格式结构,但缺少string.Format()
。另外,最后一行在第一个括号的数值之间缺少一个逗号。不管怎样,下面是更正后的代码:
Console.WriteLine("Write the price here ");
string text = Console.ReadLine();
double price = Convert.ToDouble(text);
Console.WriteLine("Write the amount here ");
text = Console.ReadLine();
int quantity = Convert.ToInt32(text);
double amount = price * quantity;
double vat = amount * 0.25;
double total = amount + vat;
Console.WriteLine(string.Format("{0, -15} {1, 10:F}", "Pris på varen", price));
Console.WriteLine(string.Format("{0, -15} {1, 10:D}", "Antal styk", quantity));
Console.WriteLine(string.Format("{0, -15} {1, 10:F}", "Pris eks. moms", amount));
Console.WriteLine(string.Format("{0, -15} {1, 10:F}", "Moms", vat));
Console.WriteLine(string.Format("{0, -15} {1, 10:F}", "Total pris, inkl. moms", total));
Console.Read();