[英]Minutes to hours in decimal + round in C#
我正在嘗試將分鍾轉換為十進制小時數並舍入到最接近的十五分鍾( 向上舍入)。
基本上:
15分鍾= 0.25小時
25分鍾= 0.5小時
30分鍾= 0.5小時
50分鍾= 1小時
60分鍾= 1小時
我沒有在stackoverflow上找到任何相關內容,但另一個網站告訴我:
var hours = Math.Round((minutes * 100 ) / 60.0);
哪個不接近結果。
我知道我不能使用Math.Round()
(因為它將它轉換為int?)。 對於TimeSpan
(因為它在一個double
給出了.TotalHours
)。
一個好的方法可以從將它除以60開始?
讓我們認為你有幾分鍾,並希望將它們轉換為小時(0.25,0.5,0.75,1)
首先我們得到它的四分之一: Math.Ceiling(minutes / 15.0)
如果你有3.01, Math.Ceiling
返回4
然后將其除以4得到四分之一
var hours = Math.Ceiling(minutes / 15.0)/4.0;
使用其中一個
Math.Round(minutes / 15) * 0.25
, Math.Floor(minutes / 15) * 0.25
或 Math.Ceiling(minutes / 15) * 0.25
取決於您想要的精確舍入(最近,向下或向上)。
minutes / 15
告訴你一些宿舍,您圓,然后0.25
皈依小時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.