Не считывается число типа 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");