使用 C#,我想将小数格式化为仅显示两个小数位,然后我将取该小数并将其减去另一个小数。我希望能够做到这一点,而不必先将其转换为字符串进行格式化,然后再将其转换回小数。很抱歉,我忘记指定这一点,但我不想四舍五入,我只想去掉最后一个小数点。有没有办法做到这一点?
jumbojs
问问题
2789 次
5 回答
8
如果不想四舍五入,可以使用 Decimal.Truncate。不幸的是,它只能截断所有小数。要解决这个问题,您可以乘以 100,截断并除以 100,如下所示:
decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;
如果你做的次数足够多,你可以创建一个扩展方法
public static class DecimalExtensions
{
public static decimal TruncateDecimal(this decimal @this, int places)
{
int multipler = (int)Math.Pow(10, places);
return Decimal.Truncate(@this * multipler) / multipler;
}
}
于 2009-03-30T16:46:33.207 回答
5
您可以使用:Math.Round(number,2);
将数字四舍五入到小数点后两位。
有关示例,请参见Math.Round 的此特定重载。
于 2009-03-30T16:41:46.417 回答
3
于 2009-03-30T16:38:52.037 回答
2
你不想格式化它,但要舍入它。试试 Math.Round 函数。
于 2009-03-30T16:39:00.337 回答
0
于 2009-03-30T16:39:22.957 回答