誠然,我的數學不是那么強。為什么這兩個例子給出不同的結果?
示例一
function isOdd(num) {
return (num % 2) == 1 ? true : false;
}
console.log(isOdd(-17));
輸出:(false不正確)
示例二
function isOdd(num) {
return (num % 2) != 0 ? true : false;
}
console.log(isOdd(-17));
輸出:(true正確)
控制臺測驗
console.log(-17 % 2);
輸出是-1,而不是1。
任何奇數 mod 2 總是等于 1,不是嗎?那么為什么會這樣呢?為什么我需要測驗!= 0才能得到正確的答案?為什么會== 1產生錯誤的答案?
uj5u.com熱心網友回復:
我在MDN 檔案上找到的關于 javascript 中 mod 運算子的解釋是,回傳的值帶有被除數的符號(被除數:在你的情況下為 -17)。
當你除以 -17/2 時,這在數學中是相同的。答案是 -8.5,如果你只想要整數,那么你會得到 -8 - 1/2。這意味著 -1 是您的部門的剩余部分。
您會在 C 和 Go 編程語言中找到相同的答案。
我不知道為什么 Python 在這種情況下會回傳 1。我的觀點是 python 只回傳整數值并忽略符號。
當余數不為 0 時,可以肯定地說一個數是奇數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/504162.html
標籤:javascript 数学
