有十进制数量,如果存在则要修剪到小数点后两位
答案 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);