-2

关于我创建的用于检查用户输入的 TryParse 方法,我还有另一个问题。很抱歉我的额外问题,但我遇到了另一个并发症并希望得到更多帮助,所以我提出了另一个问题,因为我的最后一个问题已经很老了。如果我将其发布在最后一个问题上,我担心没有人会看到这个问题。

没有错误,但是当我尝试运行它来测试用户的输入时,对于我输入的所有内容,包括整数、小数、(1.00、1.0、1,000.0),它仍然给了我 Messagebox.Show。这是我创建的:

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

4

2 回答 2

1

您在每个解析语句中使用相同的标签。

decimal.TryParse(ChargeLabel.Text, out Medical)
decimal.TryParse(ChargeLabel.Text, out Surgical)
decimal.TryParse(ChargeLabel.Text, out Lab)
decimal.TryParse(ChargeLabel.Text, out Rehab)

编辑我建议在每一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));
}
于 2013-03-17T18:51:02.317 回答
1

确保您以文化正确的格式输入数字。一些文化使用逗号作为分隔符,其他文化使用点。试试“123,4”和“123.4”

于 2013-03-17T18:51:59.507 回答