如何对输出的小数点进行四舍五入?

发布于 2024-07-16 06:24:36 字数 142 浏览 7 评论 0原文

使用 C#,我想将小数格式化为仅显示两个小数位,然后我将采用该小数并将其减去另一个小数。 我希望能够做到这一点,而不必先将其转换为字符串进行格式化,然后将其转换回十进制。 很抱歉我忘记指定这一点,但我不想四舍五入,我只想去掉最后一个小数点。 有没有办法做到这一点?

Using C#, I want to format a decimal to only display two decimal places and then I will take that decimal and subtract it to another decimal. I would like to be able to do this without having to turn it into a string first to format and then convert it back to a decimal. I'm sorry I forget to specify this but I don't want to round, I just want to chop off the last decimal point. Is there a way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

樱桃奶球 2024-07-23 06:24:36

如果不想对小数点进行四舍五入,可以使用 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;
  }
}

If you don't want to round the decimal, you can use Decimal.Truncate. Unfortunately, it can only truncate ALL of the decimals. To solve this, you could multiply by 100, truncate and divide by 100, like this:

decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;

And you could create an extension method if you are doing it enough times

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;
  }
}
喜你已久 2024-07-23 06:24:36

您可以使用:Math.Round(number,2); 将数字四舍五入到小数点后两位。

有关示例,请参阅Math.Round 的此特定重载

You can use: Math.Round(number,2); to round a number to two decimal places.

See this specific overload of Math.Round for examples.

哎呦我呸! 2024-07-23 06:24:36

您不想格式化它,而是对其进行四舍五入。 尝试 Math.Round 函数。

You don't want to format it then, but to round it. Try the Math.Round function.

这个俗人 2024-07-23 06:24:36

看看 Math.Round

Take a look at Math.Round

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文