0

我有一个TimeSpants

当我使用Math.Round(ts.TotalHours,2)它时,它会返回3,3,这是正确的。

我想将我的小数格式化为3,33 -> 3,5

像这样:

3 hours = 3,0
3 hours and 10 minutes = 3,25
3 hours and 20 minutes = 3,5
3 hours and 35 minutes = 3,75
3 hours and 55 minutes = 4

有没有人有一个好主意?

4

1 回答 1

6

如果你想四舍五入最接近的 0.25,你可以简单地乘以 4,四舍五入,然后除以 4。

public static decimal RoundToQuarter(decimal x)
{
  return Math.Round(x*4)/4;
}

您还应该考虑MidPointRounding您想要哪种行为。1/8即像or之类的值会发生什么3/8。默认为四舍五入,其中1/8变为03/8变为0.5

于 2012-05-22T08:47:35.540 回答