【问题标题】:Rounding decimals to two decimal places in c#在c#中将小数四舍五入到小数点后两位
【发布时间】:2013-10-09 21:54:12
【问题描述】:

我想将 54.5345 舍入到 54.54 也就是说,如果我有第三个小数位,那么我想在第二个小数位上加 1。

我尝试过使用 math.round,但如果小数点后第三位小于 5,它总是向下取整

【问题讨论】:

  • 这就是舍入在数学上的实际运作方式。
  • 请阅读维基百科上的舍入概念here
  • 说真的。!我知道舍入是如何工作的,但我想将 54.5345 舍入到 54.54 而不是 54.53
  • 如果数字为负数,您希望发生什么? -54.5345 是否得到负数并因此更大,然后转到-54.53 或者您是否希望它的绝对值变大并继续到-54.54 ?

标签: c# rounding


【解决方案1】:

尝试:

d = Math.Ceiling(d * 100) / 100;

其中 d 是你的小数。

【讨论】:

  • 如果是负数怎么办?
  • 为了我的目的,它总是积极的
【解决方案2】:

我认为你应该试试这个:

      double a = Math.Round(-57.5345, 2); 

这也适用于负数。

你的四舍五入方式不正确。

您也可以参考:

How do you round a number to two decimal places in C#?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
相关资源
最近更新 更多