public static void Main()
decimal Discount = 0.45m;
decimal InvTotal = 100.5m;
decimal calculatedNRLineitem1 = ((li1 - ((li1 / InvTotal) * Discount)) * Tax / 100);
decimal calculatedNRLineitem2 = ((li2 - ((li2 / InvTotal) * Discount)) * Tax / 100);
decimal calculatedNRLineitem3 = ((li3 - ((li3 / InvTotal) * Discount)) * Tax / 100);
Console.WriteLine("Line item 1 - Not Rounded = " + calculatedNRLineitem1);
Console.WriteLine("Line item 2 - Not Rounded = " + calculatedNRLineitem2);
Console.WriteLine("Line item 3 - Not Rounded = " + calculatedNRLineitem3);
Console.Write("\nSum of not rounded line items - ");
Console.WriteLine(Math.Round(calculatedNRLineitem1 + calculatedNRLineitem2 + calculatedNRLineitem3, 2, MidpointRounding.AwayFromZero));
decimal calculatedRLineitem1 = Math.Round(((li1 - ((li1 / InvTotal) * Discount)) * Tax / 100), 2, MidpointRounding.AwayFromZero);
decimal calculatedRLineitem2 = Math.Round(((li2 - ((li2 / InvTotal) * Discount)) * Tax / 100), 2, MidpointRounding.AwayFromZero);
decimal calculatedRLineitem3 = Math.Round(((li3 - ((li3 / InvTotal) * Discount)) * Tax / 100), 2, MidpointRounding.AwayFromZero);
Console.WriteLine("Line item 1 - Rounded " + calculatedRLineitem1);
Console.WriteLine("Line item 2 - Rounded " + calculatedRLineitem2);
Console.WriteLine("Line item 3 - Rounded " + calculatedRLineitem3);
Console.Write("\nSum of rounded line items - ");
Console.WriteLine(Math.Round(calculatedRLineitem1 + calculatedRLineitem2 + calculatedRLineitem3, 2, MidpointRounding.AwayFromZero));