2017-06-15 66 views
-3
Math.ceil(4); // 4 

Math.ceil(4.95); // 5 

Math.ceil(0.05) // 1 

Math.ceil(-6.75) // -7 

但當的Javascript天花板(小區)爲-0

Math.ceil(-0.05) // -0 

這裏,輸出爲-0,但我只想要0

+2

你確定它的輸出是'0',因爲對我來說的'-1' @Lakhan –

+0

我也得-1,無法重現。 – Amy

+0

它的ceil不落地@PranavPatel –

回答

1

你的問題是完全錯誤的......

Math.floor(-0.05) // -0 

以上錯誤。它是-1。地板是否定的。您需要ceil

Math.floor(-0.05) 
-1 
Math.ceil(-0.05) 
-0 

而你需要abs()

Math.abs(Math.ceil(-0.05)) 
0 
+1

我不喜歡只是將所有內容都包裝在'Math.abs()'中,因爲如果我們正在尋找'-2.5'的'ceil',該怎麼辦?答案不應該是'2'。 – krillgar

+0

@krillgar你有一個點隊友。但看看我在包裝它?在最後的權利?所以......':)' –

+0

當輸出是-2時,我想-2作爲答案。但-0不是一個有效的數字,所以我想0 –

1

如果只想絕對數..總是,然後

console.log(Math.floor(Math.abs(-0.05))) 
+0

我總是不想要絕對值。只爲-0作爲0 @Nirmal –

+0

@LakhanBaheti,爲什麼你不能添加一個明確的檢查'0'或'-0'? 「-0」不工作但是「0」的用例是什麼? –

+0

有沒有理由不寫一行'if'語句? – Amy

0

如果你想改變的方式,一個本地功能的作品,你最好的選擇是創建你自己的。

Math.myCeil = function (x) { 
    var ans = Math.ceil(x); 

    // -0 === 0 is true! 
    if (ans === 0) { 
     ans = 0; 
    } 

    return ans; 
};