I noticed that .NET has some funky/unintuitive behavior when it comes to decimals and trailing zeros.
0m == 0.000m //true 0.1m == 0.1000m //true
I think that what you need is this (more details in my answer here) :
public static decimal Normalize(decimal value) { return value/1.000000000000000000000000000000000m; }