2016-04-22 120 views
1

我的代碼是出現FormatException字符串必須是一個字符長

objVehicle.TaxAmount = CalculateTax_TaxableVeh(
    objVehicle.IsLogging, 
    Convert.ToChar(objVehicle.CurrentWeightCategory), 
    Convert.ToInt16(Session["FUM"]), 
    Convert.ToInt16(Session["TAX_YEAR"])); 

我收到出現FormatException「字符串的長度必須爲一個字符。'at TAX_YEAR

+0

我假設你不會在'TAX_YEAR'得到錯誤,而是'Convert.ToChar(objVehicle.CurrentWeightCategory)' –

+0

正如其他說明的那樣,'objVehicle.CurrentWeightCategory'不是1個字符長。要確認,請嘗試'objVehicle.CurrentWeightCategory.Substring(0,1)',你將不會有任何異常。 – raidensan

+0

在將它們傳遞給方法之前,應將這些轉換後的值存儲在單獨的變量中。然後你會注意到哪一行以及哪一個值你實際得到異常。由於此方法調用是一種語句,因此您不會注意到'Convert.ToInt16(Session [「TAX_YEAR」])'沒有問題,但是'Convert.ToChar(objVehicle.CurrentWeightCategory)'沒有問題。 –

回答

3

string可以包含許多字符,但char存儲單個字符。

Convert.ToChar()試圖將輸入轉換爲一個字符。當輸入是字符串類型並且它包含多個字符時,您會在問題中提到異常。

您應該檢查objVehicle.CurrentWeightCategory

+0

這應該是一個評論,而不是答案。 – raidensan

相關問題