può essere è una domanda semplice ma sto provando tutto il metodo di conversione! e ha ancora errori! mi aiuterebbe?Come posso convertire i decimali? al decimale
decimale? (Decimale nullable) in decimale
può essere è una domanda semplice ma sto provando tutto il metodo di conversione! e ha ancora errori! mi aiuterebbe?Come posso convertire i decimali? al decimale
decimale? (Decimale nullable) in decimale
Dipende da cosa si vuole fare se il decimal?
è null
, dal momento che un decimal
non può essere null
. Se si vuole di default che a 0, è possibile utilizzare questo codice (utilizzando il nulla coalescenza operatore):
decimal? nullabledecimal = 12;
decimal myDecimal = nullabledecimal ?? 0;
Provare a utilizzare il ??
dell'operatore:
decimal? value=12;
decimal value2=value??0;
0 è il valore che si desidera quando decimal?
è nullo.
che non è necessario per convertire un tipo nullable per ottenere il suo valore.
È sufficiente sfruttare le proprietà HasValue
e Value
esposti da Nullable<T>
.
Ad esempio:
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.");
}
In alternativa, è possibile utilizzare il null coalescing operator in C# 2.0 o successiva come scorciatoia.
È possibile utilizzare.
decimal? v = 2;
decimal v2 = Convert.ToDecimal(v);
Se il valore è nullo (v), verrà convertito a 0.
C'è un sacco di opzioni ...
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. Preferisco 'GetValueOrDefault', perché non dipende dalla sintassi C# e come tale può essere usato anche in VB.NET. È anche facilmente regolabile, nel caso in cui il valore predefinito del tipo non funzioni per te. – Neolisk
cosa dire di Convert.ToDecimal(); ? posso usarlo per copertine da decimale a decimale? – ManirajSS
@NullReference cosa significherebbe fare la conversione da decimale a decimale? Esiste [decimal Convert.ToDecimal (decimal)] (http://msdn.microsoft.com/en-us/library/8xhfcwt6 (v = vs.110) .aspx), ma che ** letteralmente ** restituisce semplicemente valore di input –
ho pensato che Convert.ToDecimal() era rappresentazioni di stringa, non per convertire decimali nullable in decimali. Vedi qui: https://msdn.microsoft.com/en-us/library/9k6z9cdw(v=vs.110).aspx –