在C#中使用TryParse处理数据类型时遇到麻烦

鲍勃·格里德威尔

以下是表单上的按钮。用户在小计文本框中输入美元金额,然后按计算按钮。然后,它计算折扣并在表单底部的文本框中显示发票总额。我们假设如果输入的小计金额为“ $”,则使用解析方法将条目转换为十进制。我的问题是关于数据类型的成功。我现在是Bool,因为它是1或0。

当我尝试构建表单时,出现以下错误:

错误1无法将类型'布尔'隐式转换为'十进制'

namespace InvoiceTotal
{
public partial class frmInvoiceTotal : Form
{
    public frmInvoiceTotal()
    {
        InitializeComponent();
    }

    private void btnCalculate_Click(object sender, EventArgs e)
    {
        decimal sucess = 0m;
        decimal subtotal = Decimal.TryParse(txtSubtotal.Text, out sucess);
        decimal discountPercent = .25m;
        decimal discountAmount = Math.Round(subtotal * discountPercent,2);
        decimal invoiceTotal = Math.Round(subtotal - discountAmount,2);

        txtDiscountPercent.Text = discountPercent.ToString("p1");
        txtDiscountAmount.Text = discountAmount.ToString(); // ("c");
        txtTotal.Text = invoiceTotal.ToString(); // ("c");

        txtSubtotal.Focus();
    }

我想我没有为变量“成功”声明正确的数据类型?如果有人可以帮助我指出正确的方向,我将不胜感激!

*错误1无法将类型'布尔'隐式转换为'十进制'

我在Windows 8.1机器上使用Visual Studio Professional 2012。

菲利普·皮特尔

尽管其他答案都是正确的,但我想在此基础上进行扩展。使用该TryParse方法的原因是,允许在输入无效的情况下更好地控制程序流程。换句话说,如果输入错误,您想怎么办:

private void btnCalculate_Click(object sender, EventArgs e)
{
    decimal subtotal;

    if (!decimal.TryParse(txtSubtotal.Text, out subtotal))
    {
        //Display some warning to the user
        MessageBox.Show(txtSubtotal.Text + " is not a valid number");

        //don't continue processing input
        return;
    }

    //input is good, continue processing
    decimal discountPercent = .25m;
    decimal discountAmount = Math.Round(subtotal * discountPercent,2);
    decimal invoiceTotal = Math.Round(subtotal - discountAmount,2);
}

在某些情况下,如果日期不正确,则不必控制程序流,因为无论如何您都将引发异常。在这种情况下,您可以使用Decimal.Parsewhich来抛出一个FormatException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中使用委托时遇到麻烦

来自分类Dev

在R中使用Tidyverse分离数据时遇到麻烦

来自分类Dev

在Spark中使用数据时遇到麻烦了吗?

来自分类Dev

在C#中使用FileStreams删除文件时遇到一些麻烦

来自分类Dev

在 SQL 中使用 case 时的不同数据类型

来自分类Dev

链接C ++时出现Excel错误:“公式中使用的值是错误的数据类型”

来自分类Dev

使用类型变量显式指定类型时遇到麻烦

来自分类Dev

在Express / Node中使用过帐的表单数据时遇到麻烦

来自分类Dev

创建方法参数时,应该使用内置的数据类型或接口吗?C#

来自分类Dev

熊猫加载数据时遇到数据类型问题

来自分类Dev

熊猫加载数据时遇到数据类型问题

来自分类Dev

在解释这个处理指针的C示例时遇到麻烦

来自分类Dev

使用多索引处理日期索引时遇到麻烦

来自分类Dev

使用$#和循环处理脚本时遇到麻烦

来自分类Dev

使用多索引处理日期索引时遇到麻烦

来自分类Dev

在UNIX环境中使用C编程语言创建空文件时遇到麻烦

来自分类Dev

使用div创建盒子阴影类型效果时遇到麻烦

来自分类Dev

在Java中使用递归方法时遇到麻烦

来自分类Dev

在nodejs中使用grok模块时遇到麻烦

来自分类Dev

在R中使用Hmisc处理缺失值后如何处理“ Impute”数据类型

来自分类Dev

用C#编写Tor时遇到麻烦

来自分类Dev

在C#中使用python webservice时遇到问题

来自分类Dev

我在使用数据读取器时遇到了麻烦

来自分类Dev

使用指针时遇到麻烦

来自分类Dev

在C#/。NET中使用protobuf3发送通用数据类型的正确方法

来自分类Dev

在argparse中使用numpy数据类型

来自分类Dev

处理从NSUserDefaults返回的对象时遇到麻烦

来自分类Dev

使用 Switch 语句调用的 C# 方法 - 遇到麻烦

来自分类Dev

Qt / C ++:使用QDom写入XML文件时遇到麻烦

Related 相关文章

  1. 1

    在C#中使用委托时遇到麻烦

  2. 2

    在R中使用Tidyverse分离数据时遇到麻烦

  3. 3

    在Spark中使用数据时遇到麻烦了吗?

  4. 4

    在C#中使用FileStreams删除文件时遇到一些麻烦

  5. 5

    在 SQL 中使用 case 时的不同数据类型

  6. 6

    链接C ++时出现Excel错误:“公式中使用的值是错误的数据类型”

  7. 7

    使用类型变量显式指定类型时遇到麻烦

  8. 8

    在Express / Node中使用过帐的表单数据时遇到麻烦

  9. 9

    创建方法参数时,应该使用内置的数据类型或接口吗?C#

  10. 10

    熊猫加载数据时遇到数据类型问题

  11. 11

    熊猫加载数据时遇到数据类型问题

  12. 12

    在解释这个处理指针的C示例时遇到麻烦

  13. 13

    使用多索引处理日期索引时遇到麻烦

  14. 14

    使用$#和循环处理脚本时遇到麻烦

  15. 15

    使用多索引处理日期索引时遇到麻烦

  16. 16

    在UNIX环境中使用C编程语言创建空文件时遇到麻烦

  17. 17

    使用div创建盒子阴影类型效果时遇到麻烦

  18. 18

    在Java中使用递归方法时遇到麻烦

  19. 19

    在nodejs中使用grok模块时遇到麻烦

  20. 20

    在R中使用Hmisc处理缺失值后如何处理“ Impute”数据类型

  21. 21

    用C#编写Tor时遇到麻烦

  22. 22

    在C#中使用python webservice时遇到问题

  23. 23

    我在使用数据读取器时遇到了麻烦

  24. 24

    使用指针时遇到麻烦

  25. 25

    在C#/。NET中使用protobuf3发送通用数据类型的正确方法

  26. 26

    在argparse中使用numpy数据类型

  27. 27

    处理从NSUserDefaults返回的对象时遇到麻烦

  28. 28

    使用 Switch 语句调用的 C# 方法 - 遇到麻烦

  29. 29

    Qt / C ++:使用QDom写入XML文件时遇到麻烦

热门标签

归档