2016-04-22 13 views
1

私のコードは、私がFormatexception "文字列を取得していますが、正確に1文字でなければなりませんFormatException文字列は、1つの文字の長

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

でなければなりません。 'at TAX_YEAR

+0

私は 'TAX_YEAR'でエラーを受け取らないと仮定しますが、' Convert.ToChar(objVehicle.CurrentWeightCategory) ' –

+0

他にも述べたように、' objVehicle.CurrentWeightCategory'は1文字長ではありません。確認するには、 'objVehicle.CurrentWeightCategory.Substring(0,1)'を試してください。例外はありません。 – raidensan

+0

変換された値は、メソッドに渡す前に別の変数に格納する必要があります。次に、どの行でどの値を使用して実際に例外が発生するかを確認します。このメソッド呼び出しは1つのステートメントなので、Convert.ToInt16(Session ["TAX_YEAR"])は問題なく動作しますが、Convert.ToChar(objVehicle.CurrentWeightCategory)は動作しません。 –

答えて

3

stringには多くの文字が含まれますが、charには1文字が格納されます。

Convert.ToChar()入力を1文字に変換しようとします。入力がstring型で、複数の文字が含まれている場合は、あなたが質問で言及した例外があります。

objVehicle.CurrentWeightCategoryをチェックしてください。

+0

これはコメントであり、答えではありません。 – raidensan

関連する問題