System.FormatException : Input string was not in a correct format ,on converting string to decimal.
Solution 1
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()?
Solution 2
Please try with the below code snippet.
CultureInfo info = CultureInfo.GetCultureInfo("es-ES");
string storedValue = "3,85";
decimal oldAmount;
bool succes = Decimal.TryParse(storedValue, NumberStyles.Any, info, out oldAmount);
user2855304
Updated on April 18, 2020Comments
-
user2855304 about 4 years
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?
-
Jayesh Goyani about 10 yearsSame answer is already provided by '@David Brossard' before 3 minutes.
-
user2855304 about 10 yearsThe problem is not with TextBox - Im using html controls so TextBox as ID works just fine. The problem is in Decimal.Parse(SomeString).
-
Jayesh Goyani about 10 yearsplease provide your textbox's value.
-
user2855304 about 10 yearsI don't use textbox. On this page I was using <input type="text" id="TextBox" runat="server" />. Anyway - Sn1ckers help me with the issue - problem was in my culture sign. Instead of 0.85 i should use 0,85.