Puede ser que es una pregunta simple, pero estoy probar todos método de conversión! y todavía tiene un error! me ayudarías?¿Cómo puedo convertir el decimal? a decimal
decimal? (Decimal anulable) a decimal
Puede ser que es una pregunta simple, pero estoy probar todos método de conversión! y todavía tiene un error! me ayudarías?¿Cómo puedo convertir el decimal? a decimal
decimal? (Decimal anulable) a decimal
Depende de lo que quiere hacer si el decimal?
es null
, ya que un decimal
no puede ser null
. Si desea por defecto que a 0, puede utilizar este código (usando el operador coalescente nula):
decimal? nullabledecimal = 12;
decimal myDecimal = nullabledecimal ?? 0;
Trate de usar el ??
operador:
decimal? value=12;
decimal value2=value??0;
0 es el valor que desee cuando el decimal?
es nulo.
No necesita convertir un tipo anulable para obtener su valor.
Simplemente tome ventaja de las propiedades HasValue
y Value
expuestas por Nullable<T>
.
Por ejemplo:
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.");
}
Alternativamente, se puede utilizar el null coalescing operator en C# 2.0 o posterior como un acceso directo.
Puede usar.
decimal? v = 2;
decimal v2 = Convert.ToDecimal(v);
Si el valor es nulo (v), que se convertirá en 0.
Hay un montón de opciones ...
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
1. Yo prefiero 'GetValueOrDefault', ya que no depende de la sintaxis de C# y, como tal, puede ser utilizado en VB.NET también. También es fácilmente ajustable, en caso de que el valor predeterminado del tipo no funcione para usted. – Neolisk
qué pasa con Convert.ToDecimal(); ? ¿Puedo usarlo para la cobertura decimal a decimal? – ManirajSS
@NullReference lo que significaría para hacer la conversión "decimal a decimal"? Hay [Convert.ToDecimal decimal (decimal)] (http://msdn.microsoft.com/en-us/library/8xhfcwt6 (v = vs.110) .aspx), pero que ** ** literalmente sólo devuelve la valor de entrada –
pensé que Convert.ToDecimal() eran representaciones de cadena, no para convertir decimal numerable a decimal. Ver aquí: https://msdn.microsoft.com/en-us/library/9k6z9cdw(v=vs.110).aspx –