我怎样才能转换小数? 到十进制
可能是一个简单的问题,但我尝试所有的转换方法! 它仍然有错误! 你能帮我吗?
十进制? (可为空的十进制)为十进制
有很多select
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
尝试使用??
运营商:
decimal? value=12; decimal value2=value??0;
0是decimal?
时你想要的值decimal?
一片空白。
您不需要转换可空types以获取其值。
您只需利用由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或更高版本中的空合并运算符作为快捷方式。
这取决于你想要做什么,如果decimal?
为null
,因为decimal
不能为null
。 如果要将其默认为0,则可以使用此代码(使用空合并运算符 ):
decimal? nullabledecimal = 12; decimal myDecimal = nullabledecimal ?? 0;
您可以使用。
decimal? v = 2;
十进制v2 = Convert.ToDecimal(v);
如果值为空(v),则它将被转换为0。