2015-06-04 1 views

ответ

2

Использование 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; 
} 
+0

Я хочу написать 12.5 в консоль и интерпретировать его как десятичное. – grdgfgr

+0

Посмотрите на обновленный ответ. Вот как вы разбираете десятичный разделитель с десятичной запятой из строки, вводимой в консоль. –

Смежные вопросы