web-dev-qa-db-ja.com

10進数を変換するにはどうすればよいですか?小数に

それは簡単な質問かもしれませんが、私はすべての変換方法を試しています!まだエラーがあります!手伝ってくれませんか?

小数? (ヌル可能10進数)から10進数

45
Negar

たくさんのオプションがあります...

decimal? x = ...

decimal a = (decimal)x; // works; throws if x was null
decimal b = x ?? 123M; // works; defaults to 123M if x was null
decimal c = x.Value; // works; throws if x was null
decimal d = x.GetValueOrDefault(); // works; defaults to 0M if x was null
decimal e = x.GetValueOrDefault(123M); // works; defaults to 123M if x was null
object o = x; // this is not the ideal usage!
decimal f = (decimal)o; // works; throws if x was null; boxes otherwise
97
Marc Gravell

??演算子を使用してみてください。

decimal? value=12;
decimal value2=value??0;

0は、decimal?がnullの場合に必要な値です。

25
Carles Company

値を取得するために、null許容型をconvertする必要はありません。

単に、Nullable<T>によって公開される HasValue および Value プロパティを利用します。

例えば:

Decimal? largeValue = 5830.25M;

if (largeValue.HasValue)
{
    Console.WriteLine("The value of largeNumber is {0:C}.", largeValue.Value);
}
else
{
    Console.WriteLine("The value of largeNumber is not defined.");
}

または、C#2.0以降でショートカットとして null合体演算子 を使用できます。

11
Cody Gray

nulldecimalにすることはできないため、decimal?nullである場合の処理​​内容によって異なります。デフォルトを0にしたい場合は、次のコードを使用できます(null合体演算子を使用):

decimal? nullabledecimal = 12;

decimal myDecimal = nullabledecimal ?? 0;
3