如何在c#中删除小数点后的零

时间:2017-04-25 07:06:45

标签: c#

  

c#中是否有任何数学函数?

如果值是18.00,那么我想要值18, 如果值是18.50,那么我想要值18.5, 如果值是18.25000,那么我想要值18.25。

2 个答案:

答案 0 :(得分:1)

您可以使用Decimal.Round 文档在这里

Deciaml.Round Documentation

答案 1 :(得分:-1)

如果您想转换为十进制,请使用此

static decimal? RemoveTrailingZeros(this decimal? value)
{
    if (value == null) return null;

    var format = $"0.{string.Join(string.Empty, Enumerable.Repeat("#", 29))}";
    var strvalue = value.Value.ToString(format);
    return ConvertToDecimalCultureInvariant(strvalue);
}

static decimal? ConvertToDecimalCultureInvariant(this string value)
{
    decimal decValue;

    if (!decimal.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out decValue))
    {
        return null;
    }
    return decValue;
}

由于小数的精度为29,因此为Enumerable.Repeat("#", 29)

并将其用作

var result = RemoveTrailingZeros(29.0000m);

enter image description here