Sardar Agabejli
Sardar Agabejli

Reputation: 433

Error when converting String to Float/Int. C# Windows Forms

I am new at C#. I hope someone can help me.

I am programing a small Windows Forms Application. Two textBoxes and one result label. For hours I am trying to get from the Strings in the textBoxes a Float Value. Later some one will write for example 1.25 in TextBox1 and divide it with a value in the second TextBox.

I tryed lot of code. If a code is working (not red underlined) than I get this

Error Message: "Error kind of System.Format.Exception in mscorlib.dll". "The entered String has wrong format".

How can I fix this?! Or what am I m doing wrong?! Please help. I am a Noob.

  using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
{


    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string a = textBox1.Text;
            string b = textBox2.Text;

            float num = float.Parse(textBox1.Text);

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}

`

enter image description here

Upvotes: 0

Views: 1174

Answers (1)

PaulF
PaulF

Reputation: 6773

If you use the Parse function & an invalid number is entered - then you will get an error message (in the form of an unhandled exception) of the type you described.

You can either implement exception handling :

float num;
try
{
    num = float.Parse(textBox1.Text);
}
catch (FormatException)
{
   // report format error here
}

you can also catch the out of range & null argument exceptions : https://msdn.microsoft.com/en-us/library/2thct5cb(v=vs.110).aspx

Or use the TryParse method :

float num;
bool NumberOK = float.TryParse(textBox1.Text, out num);
if (!NumberOK)
{
    // report error here
}

https://msdn.microsoft.com/en-us/library/26sxas5t(v=vs.110).aspx

Upvotes: 2

Related Questions