Computers in my country do not accept decimals with a '.' they only accept ','
How do I write a program which would accept 12.5 from the console as a decimal number?
Use CultureInfo
. If you are sure that using decimal dot is a standard in your country then use your country's CultureInfo
. You can simply check if it is.
// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ"));
Or you can use InvariantCulture
and NumberStyles.Any
:
decimal dec = decimal.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
I will implement the second one as I don't know where you are from.
Here it is in an console application and it works for me:
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;
}