我有两个名为'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。
如何做到这一点?
答案 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");
}