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

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

你尝试过使用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 。

 decimal.Truncate(myDecimal * 100) / 100 

这将切掉前两位小数后的所有内容。 对于四舍五入,请参阅Jon的回答。

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

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

这应该工作(编辑:固定以删除舍入):

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