作成中のショッピング カートにこのコードがありますが、タイトルに示されているエラーが表示されます。エラーは次の行に表示されます。
4 に答える
呼び出すだけToString
で、10 進数値の文字列表現を取得できます。
order.Total = orderTotal.ToString("G");
Total
メンバーを としてstring
ではなく として保存する理由はわかりませんdecimal
が。
のタイプOrder.Total
を Decimal に変更します。データ型 Decimal は自動的に文字列に変換されない (およびその逆) ため、エラーが発生します。さらに、その後の呼び出しはOrder.Total
文字列に関連するため、次のような演算子を使用することはできません。Order.Total +=
また、基になるアーキテクチャが string.ToString(format) を呼び出さないため、DataTable の「format」プロパティのようなバインディングの便利さは無視されることに注意してください。
Order
クラスにTotal
文字列のプロパティがあるようです。のクラス定義を確認してくださいOrder
。その場合は、Total
データ型を 10 進数に変更することをお勧めします。通貨の値を文字列として表すのは意味がないからです。decimal
より理にかなっています。
Order クラスはどのように見えますか? と呼ばれるプロパティのタイプは何Total
ですか? 文字列タイプのようです。ここでは、10 進数値を文字列型に設定しようとしています。つまり、そのエラーが発生している y です。したがって、文字列変数に割り当てる前に、10 進数を文字列に変換する必要があります。メソッドを使用しtoString()
ます。
order.Total = orderTotal.ToString();
Tudor が既に述べたように、すべての数学演算を簡単に実行できるため、Total を小数プロパティとして使用することをお勧めします。算術演算を実行するたびに10進数形式に変換し、再度文字列に変換する必要はありません