计算多个值类型为字符串

时间:2017-03-09 12:19:31

标签: c#

我有两个名为'mtb_NETPAIE02'的文本框1和一个名为'mtb_TAXE02'的文本框 两个文本框中的格式是货币/货币(双)我想修复此代码的错误:

if (double.Parse(mtb_NETPAIE02.Text) >= 100001 )
{
    mtb_TAXE02.Text = (double.Parse(mtb_NETPAIE02.Text) / 5000 * double.Parse("12") 
                       + double.Parse("18").ToString("N2")).ToString();               
}
12(12,00)和18(18,00)是钱,但5000是int。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

首先,如果您正在使用资金,则不应使用double; you should be using decimal

其次,你应该使用十进制的文字,即M后缀。

最后,您尝试将decimal.Parse("18")的结果添加到其他数值,但是您首先通过ToString("N2")将其转换为字符串。您应该将后者移到您的parens之外,将计算中的整个结果转换为字符串:

if (decimal.Parse(mtb_NETPAIE02.Text) >= 100001M )
{
    // notice the `M` in 5000M
    mtb_TAXE02.Text = (decimal.Parse(mtb_NETPAIE02.Text) / 
        5000M * decimal.Parse("12") + decimal.Parse("18")).ToString("N2");
}