2017-03-09 23 views
-2

我有两个文本框1被称为“mtb_NETPAIE02”和2被称为“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。

如何正确设定?

+6

“我想解决这个代码中的错误”,你打算让我们猜?什么错误? –

回答

1

首先,如果您使用金钱工作,则不应该使用double; you should be using decimal。其次,你应该使用文字作为小数,即M后缀。

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

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"); 
} 
+0

非常感谢你的帮助....你能解释一下'M'是什么意思吗? –

+0

“M”表示它的十进制文字。 –