Object oriented: is it a good idea to set a custom setter and definitor in c #?

I tried in this way to define defined custom properties, but I wonder how to handle if any of the dependent properties has a null value.

public class ObtainedMarksDetails
{
private decimal? _percentage;
public decimal? TheoryTotal {get; set; }
public decimal? PracticalTotal {get; set; }
public decimal? TheoryFullMarksTotal {get; set; }
public decimal? PracticalFullMarksTotal {get; set; }
public decimal? TheoryPassMarksTotal {get; set; }
public decimal? PracticalPassMarksTotal {get; set; }

public decimal? Total Percentage
{

get {return _percentage = (TheoryTotal + PracticalTotal) / (TheoryFullMarksTotal + PracticalFullMarksTotal); }
set {_percentage = value; }
}

}

My question is how to set the default value for the dependent properties, that is, I tried it this way but it shows an error.

    public decimal? TheoryTotal {get; set; } = 0.0;

Also what else if Total theory throws zero value How can I manage in the getter composed of the property Total Percentage

        public decimal? Total Percentage
{

get {return _percentage = (TheoryTotal + PracticalTotal) / (TheoryFullMarksTotal + PracticalFullMarksTotal); }
set {_percentage = value; }
}