Простой калькулятор, System.FormatException - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь сделать простой калькулятор и он полностью работает, но когда я вычисляю без кнопки =, моя программа полностью вылетает и выдает ошибку:

System.FormatException: 'Входная строка была в неправильном формате. '

Это код, который выдает ошибку:

second = double.Parse(aNumber);
// the strings and doubles:

String aNumber = "";
double first = 0.0;

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

double.Parse сгенерирует исключение, если ввод недопустим.Поэтому вам либо нужно использовать try catch, либо предпочтительным способом будет использование double.TryParse, как показано ниже.Значение y ниже будет установлено на значение, если TryParse вернет true.

class Program
{
    static void Main(string[] args)
    {
        // This will cause an exception 
        var someString = "SomeValue"; 
        var x = double.Parse(someString);  // Comment this line out to run this example

        // This will work 
        double y;
        if (double.TryParse(someString, out y))
        {
            Console.WriteLine(someString + " is a valid decimal");
        }
        else
        {
            Console.WriteLine(someString + " is not a valid decimal");
        }

        someString = "14.7";
        if (double.TryParse(someString, out y))
        {
            Console.WriteLine(someString + " is a valid decimal");
        }
        else
        {
            Console.WriteLine(someString + " is not a valid decimal");
        }
    }
}
0 голосов
/ 20 ноября 2018

b будет истинным или ложным, если сработал синтаксический анализ d, будет содержать двойное число или 0, если не удастся изменить анум на действительное число для проверки.

String anum = "";
double d    = 0.0;
bool b      = double.TryParse(anum, out d);
...