当输入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。会有人给我提供帮助,如何让我的应用程序检查我的用户的输入正确?谢谢,再次抱歉。

当输入Decimal时,Decimal TryParse失败

确保以区域性正确的格式输入数字。有些文化使用逗号作为分隔符,有些则使用点。试试"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));
}