2009-08-04 77 views
8

我有以下JavaScript代碼。在javascript中使用parseInt進行整數舍入

if(frequencyValue <= 30) 
      leftVal = 1; 
     else if (frequencyValue > 270) 
      leftVal= 10; 
     else 
      leftVal = parseInt(frequencyValue/30); 

目前,如果給定的值55(例如)它將返回1自1 < 55/30 < 2.我在想,如果有圍捕2,如果小數位被丟棄的方式是大於.5。

在此先感謝

回答

26

使用parseFloat和Math.round的組合

Math.round(parseFloat("3.567")) //returns 4 

基於您的代碼示例[編輯],你不需要一個parseInt函數,因爲在所有你的論點已經是一個數字。所有你需要的是Math.round

+3

從痛苦的經歷我總是建議傳遞可選的第二個參數去強制其10個鹼基形式:parseInt(myNum的,10),否則,你可以在調試疼痛全世界得到當它試圖轉換字符串,以0等開頭,並將其全部轉換爲十六進制模式,等等,一個真正的頭部傷害者......! – 2009-08-04 17:00:14

+0

我同意,除了parseFloat沒有radix參數。它只是parseFloat(字符串)。 – 2009-08-04 17:59:36

5
leftVal = Math.floor(frequencyValue/30 + 0.5);