Decimal - truncate trailing zeros

c#, decimal

Solution

I think that what you need is this (more details in my answer here) :

public static decimal Normalize(decimal value)
{
    return value/1.000000000000000000000000000000000m;
}

Problem

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 ``` but ``` (0m).ToString() == (0.000m).ToString() //false (0.1m).ToString() == (0.1000m).ToString() //false ``` I know about necessity to comply to the ECMA CLI standard. However I would like to know if there is built-in way to truncate the trailing zeros for a decimal value without going through string representation (.ToString("G29") and parse back trick would work, but is neither fast nor elegant solution)? Any ideas? Thanks a lot.

Original source

Related problems