1. 程式人生 > >高階向下取整

高階向下取整

  最近看mongdb學習視訊,看到一個知識,就是我們平常見到的向下(向上)取整,是以1為基數的取整,比如1.1向下取整是1,即Math.floor(1.1)=1,那麼以其它數為基數的取整呢,比如5,如7向下取整為5,12.5向下取整為10,這個用程式碼也是很好實現的,即

Math.floor(number / 5.0) * 5

  這樣就實現了以5為基數的向下取整,那麼這個東西有什麼用呢?這實現了將一定範圍的資料集中到一個點上,比如一個收銀機,每次收銀都有一條記錄,會記錄收銀時間,那如果我們想分析一下哪個時間段購物人數較多,可以怎麼做呢?可以利用上面的程式碼:

  我們將一天的收銀時間轉換為分鐘,統計每5分鐘時間段內的收營次數,收營次數多的時間段就是購物高峰:處理每一條記錄,用上面的程式碼,把number替換成一天中的分鐘數,這樣每5分鐘內的資料都會落到一點上,比如0到5分鐘的資料會落到0點上,5到10分鐘的資料會落到5這點上,然後統計出落到0,5,10...這些點的記錄的數量,即為每個5分鐘時間段的購物次數,通過分析次數,即可以得出每一天的購物高峰。

  上面程式碼的作用即是將一段範圍中的資料集中到一點上,從而可以統計這一段範圍資料情況