Decimal - truncate trailing zeros

后端 未结 3 1629
旧巷少年郎
旧巷少年郎 2020-12-18 19:48

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
         


        
3条回答
  •  温柔的废话
    2020-12-18 20:09

    I don't like it much, but it works (for some range of values, at least)...

        static decimal Normalize(decimal value)
        {
            long div = 1;
            while(value - decimal.Truncate(value) != 0)
            {
                div *= 10;
                value *= 10;
            }
            if(div != 1) {
                value = (decimal)(long)value / div;
            }
            return value;
        }
    

提交回复
热议问题