我有TimeSpan
,ts
。
当我使用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
有人有个好主意吗?
答案 0 :(得分:6)
如果要舍入最接近的0.25,可以简单地乘以4,舍入,然后除以4.
public static decimal RoundToQuarter(decimal x)
{
return Math.Round(x*4)/4;
}
您还应该考虑您想要的MidPointRounding
行为。即1/8
或3/8
等值会发生什么。默认值为round-to-even,1/8
变为0
,3/8
变为0.5
。