public static void Main()
String dec_freeAmt = "40.050000000000004";
decimal decimalVal = decimal.Parse(dec_freeAmt);
var decimalPoint_Rounding = "UP";
var result = roundto(decimalVal, 2, decimalPoint_Rounding);
Console.WriteLine("result: " + result);
public static decimal roundto(decimal amount, int decimalPoint, String roundingType)
decimal multiplier = Convert.ToDecimal(Math.Pow(10, decimalPoint));
if (roundingType == "UP") {
amount = Math.Ceiling(amount * multiplier)/ multiplier;
amount = Math.Floor(amount * multiplier) / multiplier;