Не считывается число типа double, не могу понять, почему

Задание заключается в том, что вводится десятичное число, и часть до запятой – это код символа, который нужно вывести как символ, а после точки - просто двузначное число. Присваивание полям нужно сделать через конструктор.

Например, 65.1267 это A 12.

Код написан, однако число не считывается. Выходит ошибка : "Необработанное исключение: System.FormatException: Входная строка имела неверный формат." Не понимаю, как правильно считать double...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime;

namespace ConsoleApp6
{
    class MyClass
    {
        public char sym;
        public int x;
        // Конструктор , разбивающий число на массив строк ( разделяются точкой ) 
        public MyClass(double y)
        {
            y = Math.Round(y, 2 );
            string txt = Convert.ToString(y);
            string[] mas = new string[] { "." };
            sym = Convert.ToChar(mas[1]);
            x = Convert.ToInt32(mas[2]);
        }
        // Метод вывода в консоль объекта
        public void Write()
        {
            Console.WriteLine("Символ: " + sym);
            Console.WriteLine("Число: " + x);
        }
    }
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Введите число");
            double y = Double.Parse(Console.ReadLine());
            MyClass A = new MyClass(y);
            A.Write();
        }
    }
}


Ответы (1 шт):

Автор решения: firet

Если нужны десятичные числа с точкой надо локализацию ввода сделать западной

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

→ Ссылка