public static void Main()
decimal value = 10.2356M;
Console.WriteLine(Truncate(value, 2));
public static decimal Truncate(decimal amount, byte numberOfDecimals)
decimal roundedAmount = Math.Round(amount, numberOfDecimals);
if (amount > 0 && roundedAmount > amount)
return roundedAmount - new decimal(1, 0, 0, false, numberOfDecimals);
else if (amount < 0 && roundedAmount < amount)
return roundedAmount + new decimal(1, 0, 0, false, numberOfDecimals);