System.FormatException : Input string was not in a correct format ,on converting string to decimal.

user2855304 picture user2855304 · Apr 17, 2014 · Viewed 80.5k times · Source

I have a little problem with ASP.NET and C#. This is my error code:

An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in >user code

Additional information: Input string was not in a correct format.

protected void Page_Load(object sender, EventArgs e)
{
    if(this.IsPostBack == false)
    {
        Currency.Items.Add(new ListItem("Euro", "0.85"));
        Currency.Items.Add(new ListItem("Yen", "11.30"));
        Currency.Items.Add(new ListItem("PLN", "4.20"));
        Currency.Items.Add(new ListItem("GBP", "5.62"));
    }
}

protected void Convert_Click(object sender, EventArgs e)
{
    decimal oldAmount;
    bool succes = Decimal.TryParse(TextBox.Value, out oldAmount);

    if(succes)
    {
        ListItem item = Currency.Items[Currency.SelectedIndex];
        decimal newAmount = oldAmount * decimal.Parse(item.Value);
        Result.InnerText = "Result: " + newAmount;
    }

}

I tried Decimal.Parse, Decimal.TryParse and other strange combinations. Now I'm sure that issue is with strings and parsing them to decimal. When I created String variable - there was that same error while parsing. So can someone tell me what to do to be able to convert String to decimal?

Answer

sn1ckers picture sn1ckers · Apr 17, 2014

Try using "0,85" instead of "0.85". I think you can use the dot decimal if you change culture. Here is some more information: How to change symbol for decimal point in double.ToString()?