簡體   English   中英

C中十分鍾到十進制小時+循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM