我是C#的新手。我希望有人可以帮助我。
我正在编写一个小型Windows窗体应用程序。 两个textBoxes和一个结果标签。 几个小时我试图从文本框中的字符串中获取浮动值。 稍后,有些人会在TextBox1中编写例如1.25,并将其除以第二个TextBox中的值。
我尝试了很多代码。如果代码工作(不是红色下划线)比我得到的
错误消息:“错误类型为mscorlib.dll中的System.Format.Exception”。 “输入的字符串格式错误”。
我该如何解决这个问题?!或者我做错了什么?!请帮忙。我是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)
{
}
}
}
`
答案 0 :(得分:2)
如果您使用Parse功能&输入无效的数字 - 然后您将收到所描述类型的错误消息(以未处理的异常形式)。
您可以实现异常处理:
float num;
try
{
num = float.Parse(textBox1.Text);
}
catch (FormatException)
{
// report format error here
}
你也可以赶上超出范围& null参数例外:https://msdn.microsoft.com/en-us/library/2thct5cb(v=vs.110).aspx
或者使用TryParse方法:
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