出现FormatException字符串必须是一个字符长
问题描述:
我的代码是出现FormatException字符串必须是一个字符长
objVehicle.TaxAmount = CalculateTax_TaxableVeh(
objVehicle.IsLogging,
Convert.ToChar(objVehicle.CurrentWeightCategory),
Convert.ToInt16(Session["FUM"]),
Convert.ToInt16(Session["TAX_YEAR"]));
我收到出现FormatException“字符串的长度必须为一个字符。'at TAX_YEAR
答
string
可以包含许多字符,但char
存储单个字符。
Convert.ToChar()
试图将输入转换为一个字符。当输入是字符串类型并且它包含多个字符时,您会在问题中提到异常。
您应该检查objVehicle.CurrentWeightCategory
。
+0
这应该是一个评论,而不是答案。 – raidensan
我假设你不会在'TAX_YEAR'得到错误,而是'Convert.ToChar(objVehicle.CurrentWeightCategory)' –
正如其他说明的那样,'objVehicle.CurrentWeightCategory'不是1个字符长。要确认,请尝试'objVehicle.CurrentWeightCategory.Substring(0,1)',你将不会有任何异常。 – raidensan
在将它们传递给方法之前,应将这些转换后的值存储在单独的变量中。然后你会注意到哪一行以及哪一个值你实际得到异常。由于此方法调用是一种语句,因此您不会注意到'Convert.ToInt16(Session [“TAX_YEAR”])'没有问题,但是'Convert.ToChar(objVehicle.CurrentWeightCategory)'没有问题。 –