Significado de definir variable: decimal?
Es para que lo puedes manejar como nulo en caso que se necesite. Significa que a pesar de que decimal es un tipo primitivo que va a tener un valor inicial de cero siempre, con esa expresion podrás asumir un valor nulo para la variable en tu logica, haciendo uso de las propiedades HasValue y Value que se exponen
Por ejemplo podrás hacer algo como:
if(variable.HasValue)
{
// No es nulo
Console.WriteLine(variable.Value);
}
Lo he visto muy util por ejemplo en interacciones con bases de datos donde se quiere guardar un valor nulo para uno de estos tipos numericos, que sin esa expresion se guardaria por defecto un cero por ejemplo.
Tambien es lo mismo decir Nullable<decimal> variable
Saludos