我试图将文本框转换为小数,当我尝试这种方法时,它说inpurt字符串格式不正确,这是最好的方法。
_record.houseHoldArrearsAmount = Convert.ToDecimal(txtArrearsAmount.Text)
我认为这是因为文字是"" null和0.00因此它落空
编译器运行时导致异常
如果用户尚未输入
的值,则输入为空白答案 0 :(得分:0)
您不能使用空合并运算符(如注释中建议的那样),因为文本框的字符串值不为空,它将是一个空字符串。
您可以执行以下操作:
_record.householdArrearsAmount =
(string.IsNullOrWhiteSpace(txtArrearsAmount.Text) ? 0 :
Convert.ToDecimal(txtArrearsAmount.Text));
答案 1 :(得分:0)
如果您知道文本总是一个数字,您仍然可以使用转换,但请检查字符串是否先排空:
if (!string.IsNullOrWhitespace(txtArrearsAmount.Text))
{
_record.houseHoldArrearsAmount = Convert.ToDecimal(txtArrearsAmount.Text);
}
显然,如果houseHoldArrearsAmount
不是数字值,则不会更新Decimal.TryParse
。在这种情况下,您的工作取决于您的业务模式。您可能希望将其设置为0,或者您可能希望将其保留为旧值以及报告和错误。
或者,如果输入可以是任何字符串,则可以使用decimal result;
if (decimal.TryParse(txtArrearsAmount.Text, out result))
{
_record.houseHoldArrearsAmount = result;
}
将字符串转换为数字。
javascript: document.all.q.value = "Hello Google"
答案 2 :(得分:0)
您可以使用" TryParse" funtion。
decimal householdArrearsAmount = decimal.Zero;
decimal.TryParse(txtArrearsAmount.Text, out householdArrearsAmount);
_record.householdArrearsAmount = householdArrearsAmount;