当输入Decimal时,Decimal TryParse失败
本文关键字:Decimal TryParse 失败 输入 | 更新日期: 2023-09-27 18:04:27
关于我创建的用于检查用户输入的TryParse方法,我还有另一个问题。很抱歉我多提了一个问题,但我遇到了另一个复杂的问题,需要更多的帮助,所以我又提了一个问题,因为我上一个问题已经很老了。我怕没人会看到这个问题,如果我把它贴在上一个。
没有错误,但是当我试图运行它来测试我的用户输入时,对于我输入的所有内容,包括整数,小数,(1.00,1.0,10000.0),它会给我一个Messagebox。显示。下面是我创建的:
{
// Arrange the variables to the correct TextBox.
decimal Medical;
if (!decimal.TryParse(ChargeLabel.Text, out Medical))
{
MessageBox.Show("Please enter a decimal number.");
}
decimal Surgical;
if (!decimal.TryParse(ChargeLabel.Text, out Surgical))
{
MessageBox.Show("Please enter a decimal number.");
}
decimal Lab;
if (!decimal.TryParse(ChargeLabel.Text, out Lab))
{
MessageBox.Show("Please enter a decimal number.");
}
decimal Rehab;
if (!decimal.TryParse(ChargeLabel.Text, out Rehab))
{
MessageBox.Show("Please enter a decimal number.");
}
// Find the cost of Miscs by adding the Misc Costs together.
decimal MiscCharges = Medical + Surgical + Lab + Rehab;
ChargeLabel.Text = MiscCharges.ToString("c");
换句话说,我尝试在Medical, Surgical, Lab和Rehab文本框中输入任何形式的数字,它仍然给我相同的MessageBox。会有人给我提供帮助,如何让我的应用程序检查我的用户的输入正确?谢谢,再次抱歉。
确保以区域性正确的格式输入数字。有些文化使用逗号作为分隔符,有些则使用点。试试"123,4"answers"123.4"
您在每个解析语句中使用相同的标签。
decimal.TryParse(ChargeLabel.Text, out Medical)
decimal.TryParse(ChargeLabel.Text, out Surgical)
decimal.TryParse(ChargeLabel.Text, out Lab)
decimal.TryParse(ChargeLabel.Text, out Rehab)
EDIT我建议在每个MessageBox.Show
行中设置一个断点,然后查看您正在解析的字符串值是什么。
您还可以在显示的消息中提供更多信息:
decimal Rehab;
if (!decimal.TryParse(ChargeLabel.Text, out Rehab))
{
MessageBox.Show(string.Format("Unable to parse '{0}' as a decimal number.", ChargeLabel.Text));
}