title: Why does comparing a *nullable* decimal with `0` differ from comparing a decimal with `0`?
body: <p>Can someone explain why <code>result1</code> is <code>false</code> and <code>result2</code> is <code>true</code>? code is given below:</p>
  
  <pre><code>namespace TestCsharp
  {
      class Program
      {
          static void Main(string[] args)
          {
              Order objOrder = new Order(0.0M);
  
              bool result1 = objOrder.PriceNullable.Equals(0);//returns false
              bool result2 = objOrder.PriceNullable.Value.Equals(0);// returns true
          }
      }
  
      public class Order
      {
          public decimal? PriceNullable { get; set; }
          public Order(decimal? priceNullable)
          {
              PriceNullable = priceNullable;
  
          }
      }
  }   
  </code></pre>