Top.Mail.Ru
Ответы
Аватар пользователя
10лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Convert.ToDouble - зачем он нужен? C#

У меня double x = Convert.ToDouble(Console.ReadLine());
Всё работает, я рад.
Но может ли кто-то объяснить на пальцах, почему мне нужно использовать именно этот метод?
Какая разница, если просто введу значение или буду его "преобразовывать с какой-то плавающей запятой и тем более с двойной точностью (понятия не имею что даёт двойная точность) ", я не наблюдаю разницы.
Какая разница? Только не цитатой с оф. ресурса, читал. Своими словами пожалуйста.
Помогите разобраться.

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

Используется только в том случае если есть стопроцентная гарантия того, что строка окажется вещественным числом с двойной точностью. Однако при вводе с клавиатуры такой гарантии нет, поэтому следует использовать метод double.TryParse(string, double) http://msdn.microsoft.com/ru-ru/library/994c0zb1

Например, написав такой метод:
private static double InputDouble(string msg) {
int value;
do Console.Write(msg); while (!double.TryParse(Console.ReadLine(), out value));
return value;
}
Использовать так как в следующем примере: http://otvet.mail.ru/answer/1740639515

Аватар пользователя
Гуру
10лет

Console.ReadLine(); возвращает String, если не приводить к типу, то получишь ошибку.

Аватар пользователя
Мудрец
10лет

Не нужен нифига. .NET - это, по ходу, интерпретатор. Тогда явное преобразование типов нифига не нужно. По крайней мере, без него можно обойтись.
Это правда так. Я не шучу.

Вот я это написал, согласился с вами. И что дальше? От того, что я это написал, в C# исчезла необходимость явно преобразовывать типы?
Напишите свой C# с блэкджеком и шлюхами, тогда и будет разговор.

Или вас интересует, почему мелкософт не написал такого C#?
Ответ прост. В свое время не успел. А потом, когда дела пошли на лад, расслабился и забил. C# и так вне конкуренции.