有小数,如果存在则要修剪到2位小数

时间:2011-01-14 19:27:00

标签: c# math decimal

有十进制数量,如果存在则要修剪到小数点后两位

5 个答案:

答案 0 :(得分:20)

您是否尝试过使用value = Decimal.Round(value, 2)

例如:

using System;

class Test
{    
    static void Main()
    {
        decimal d = 1234.5678m;
        Console.WriteLine("Before: {0}", d); // Prints 1234.5678
        d = decimal.Round(d, 2);
        Console.WriteLine("After: {0}", d); // Prints 1234.57
    }
}

请注意,这是四舍五入而不仅仅是修剪(所以这里是四舍五入的)......你究竟需要什么?有Decimal结构支持您需要做的任何事情的机会。有关更多选项,请参阅MSDN

答案 1 :(得分:9)

decimal.Truncate(myDecimal * 100) / 100

这会减少前两位小数后的所有内容。对于四舍五入,请看Jon的答案。

答案 2 :(得分:1)

如果仅用于显示目的,您可以使用:

Console.Out.WriteLine("Number is: {0:F2}", myDecimalNumber);

答案 3 :(得分:0)

这应该有用(编辑:修复以删除舍入):

((Int32)(value * Math.Pow(10, decimalPlaces))) / (Math.Pow(10D, decimalPlaces));

答案 4 :(得分:0)

我用这个: Math.Round(MyDecimalValue,2);