Компьютеры в моей стране не принимают десятичные знаки с символом '.' они принимают только ','Региональный вход децимального разделителя
Как написать программу, которая будет принимать 12,5 из консоли в виде десятичного числа?
Компьютеры в моей стране не принимают десятичные знаки с символом '.' они принимают только ','Региональный вход децимального разделителя
Как написать программу, которая будет принимать 12,5 из консоли в виде десятичного числа?
Использование CultureInfo
. Если вы уверены, что использование десятичной точки является стандартом в вашей стране, то используйте CultureInfo
. Вы можете просто проверить, не так ли.
// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ"));
Или вы можете использовать InvariantCulture
и NumberStyles.Any
:
decimal dec = decimal.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
я реализую вторую, как я не знаю, где вы находитесь.
Здесь в консольном приложении, и это работает для меня:
public static void Main()
{
string str;
str = Console.ReadLine();
decimal dec = decimal.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
double db = double.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
Console.WriteLine(dec.ToString("F2", CultureInfo.InvariantCulture));
Console.WriteLine(db.ToString("F2", CultureInfo.InvariantCulture));
return;
}
Я хочу написать 12.5 в консоль и интерпретировать его как десятичное. – grdgfgr
Посмотрите на обновленный ответ. Вот как вы разбираете десятичный разделитель с десятичной запятой из строки, вводимой в консоль. –