none
Decimal 型の型変換 RRS feed

  • 質問

  • お世話になります。

    ADO.NET を使っています。
    int i;
    Dataview dv;
    で、dvの金額カラムに金額があるとして、このカラムがDecimal型のとき、

    if (decimal.Parse(dv[i][”金額”].ToString()) == decimal.Parse("0"))
    というのは、エラーになりませんが、なんだかdecimal 型のカラムをわざわざString型に変換してからDecimal型に変換しなおして、さらに0 をDecimal型に変換して比較するというのが無駄に感じます。
    「もしも金額が0の時は」、というコードを書くにあたって、普通の比較方法はどんなコードになるのでしょうか?

    よろしくお願いします。
    2009年10月2日 14:59

回答

  • if ((decimal)dv[i]["金額"] == 0m)のように、左辺はdecimalにキャストして、右辺の数値はサフィックスつけてdecimal型として認識させて比較できますよ。
    • 回答としてマーク yasheeki 2009年10月3日 15:05
    2009年10月2日 16:30
  • int→decimalは暗黙の型変換があるので if ((decimal)dv[i]["金額"] == 0) でもいけます。
    • 回答としてマーク yasheeki 2009年10月3日 15:05
    2009年10月2日 21:36

すべての返信

  • if ((decimal)dv[i]["金額"] == 0m)のように、左辺はdecimalにキャストして、右辺の数値はサフィックスつけてdecimal型として認識させて比較できますよ。
    • 回答としてマーク yasheeki 2009年10月3日 15:05
    2009年10月2日 16:30
  • int→decimalは暗黙の型変換があるので if ((decimal)dv[i]["金額"] == 0) でもいけます。
    • 回答としてマーク yasheeki 2009年10月3日 15:05
    2009年10月2日 21:36