I am so stuck, I lost 2 days trying to figure this out and here I am! I have an online cart selling subscriptions and I want to offer customers the ability to subscribe and choose their own payment schedule by paying monthly, quarterly or annually. Further, I want to offer a 10% discount to quarterly subscribers and 20% to annual subscribers.
I use 3 methods to do my math and for the purpose of this post, I will make the possible input parameters static.
protected decimal getTotal()
{
decimal a = Math.Round(Convert.ToDecimal(hf_hostingpackage.Value), 2);
decimal b = Math.Round(Convert.ToDecimal(hf_savingspct.Value), 2);
decimal c = Math.Round(Convert.ToDecimal(hf_registerdomain.Value), 2);
decimal d = Math.Round(Convert.ToDecimal(hf_transferdomain.Value), 2);
decimal m_totals = (a - (a * b) + c + d); ;
m_totals = Math.Floor(m_totals * 100) / 100;
return m_totals;
}
protected decimal getSavings()
{
decimal a = Math.Round(Convert.ToDecimal(hf_hostingpackage.Value), 2);
decimal b = Math.Round(Convert.ToDecimal(hf_savingspct.Value), 2);
decimal m_savings = (a - (a * b));
m_savings = Math.Floor(m_savings * 100) / 100;
return m_savings;
}
protected decimal getCycleCost()
{
decimal a = Math.Round(Convert.ToDecimal(hf_hostingpackage.Value), 2);
decimal b = Math.Round(Convert.ToDecimal(hf_savingspct.Value), 2);
decimal c = Convert.ToInt32(hf_billingcycle.Value);
decimal m_cyclecost = (a - (a * b)) * c;
m_cyclecost = Math.Floor(m_cyclecost * 100) / 100;
return m_cyclecost;
}
Using option 1 parameters I get $17.99 x 3 = $53.97 per Quarter.
This is CORRECT!
hf_hostingpackage.Value = 19.99
hf_savingspct.Value = 0.10
hf_registerdomain.Value = 0.00
hf_transferdomain.Value = 0.00
hf_billingcycle.Value = 3
Using option 2 parameters I get $15.99 x 12 = $191.90 per Year.
This is WRONG! 15.99 x 12 equals 191.88 with my public school education :)
hf_hostingpackage.Value = 19.99
hf_savingspct.Value = 0.20
hf_registerdomain.Value = 0.00
hf_transferdomain.Value = 0.00
hf_billingcycle.Value = 12
So I'm throwing it out to you pro's and I a very thankful for any advice!