JavaScript Math.trunc vs Math.floor All In One
JavaScript Math.trunc vs Math.floor All In One
JavaScript
Math
Math.trunc()
直接截取
掉小数
部分, 负数不会向下取整 ⚠️
console.log(Math.trunc(7));
// 7
console.log(Math.trunc(7.1));
// 7
console.log(Math.trunc(7.5));
// 7
console.log(Math.trunc(7.9));
// 7
console.log(Math.trunc(-3));
// -3
console.log(Math.trunc(-3.1));
// -3 ⚠️ 负数不会向下取整 ❌
console.log(Math.trunc(-3.5));
// -3 ⚠️ 负数不会向下取整 ❌
console.log(Math.trunc(-3.9));
// -3 ⚠️ 负数不会向下取整 ❌
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
Math.floor()
向下取整, 负数会向下取整 ✅
console.log(Math.floor(7));
// 7
console.log(Math.floor(7.1));
// 7
console.log(Math.floor(7.5));
// 7
console.log(Math.floor(7.9));
// 7
console.log(Math.floor(-3));
// -3
console.log(Math.floor(-3.1));
// -4 负数会向下取整 ✅
console.log(Math.floor(-3.5));
// -4 负数会向下取整 ✅
console.log(Math.floor(-3.9));
// -4 负数会向下取整 ✅
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
demos
Math.floor()
向下取整
/**
* Forward declaration of guess API.
* @param {number} num your guess
* @return -1 if num is higher than the picked number
* 1 if num is lower than the picked number
* otherwise return 0
* var guess = function(num) {}
*/
function guessNumber(n: number): number {
// 二分搜索 / 二分查找
let left = 0;
let right = n;
while(left !== right) {
let mid = Math.floor((left + right) / 2);
let temp = guess(mid);
if(temp === 0) {
return mid;
}
if(temp === -1) {
// num > pick
right = mid;
}
if(temp === 1) {
// num < pick
left = mid + 1;
}
}
return left;
};
Math.trunc()
截取掉小数部分
function guessNumber(n: number): number {
// 二分搜索 / 二分查找
let low = 1;
let high = n;
while(low <= high){
let mid = Math.trunc((low + high) / 2);
// let mid = Math.floor((low + high) / 2);
let pick = guess(mid);
if(pick === 0){
return mid;
} else if(pick === 1) {
low = mid + 1;
// } else if(pick === -1) {
} else {
high = mid - 1;
}
}
};
https://leetcode.com/problems/guess-number-higher-or-lower/?envType=study-plan-v2&envId=leetcode-75
(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
LeetCode 75
Ace Coding Interview with 75 Qs
https://leetcode.com/studyplan/leetcode-75/
AI
s
prompt = 作为一名 JavaScript 技术专家, 请详细解释一下 Math.trunc 与 Math.floor 区别和各自的优缺点
作为一名 JavaScript 技术专家,我很高兴为您解释
Math.trunc()
和Math.floor()
的区别以及各自的优缺点。
-
定义:
Math.trunc()
函数返回一个数的整数部分。它会将数字的小数部分去掉,只保留整数部分。Math.floor()
函数返回小于或等于一个给定数字的最大整数。它会将数字向下舍入到最接近的整数。
-
区别:
Math.trunc()
会直接去掉数字的小数部分,不管正负号。Math.floor()
会根据数字的正负号进行不同的舍入操作。对于正数,它会向下舍入到最接近的整数;对于负数,它会向下舍入到最接近的整数(即更小的整数)。
-
优缺点:
Math.trunc()
的优点是:- 简单直接,不需要考虑正负号的问题。
- 对于接近整数的小数,它的结果更加直观和易于理解。
Math.trunc()
的缺点是:- 对于负数,它的行为可能与人们的预期不一致。例如,
Math.trunc(-1.5)
的结果是-1
,而不是-2
。
- 对于负数,它的行为可能与人们的预期不一致。例如,
Math.floor()
的优点是:- 对于正数和负数,它的行为更加符合人们的预期。
- 对于需要向下取整的场景,它更加适用。
Math.floor()
的缺点是:- 需要考虑正负号的问题,稍微复杂一些。
总的来说,Math.trunc()
和 Math.floor()
都是 JavaScript 中常用的数学函数,它们在不同的场景下有各自的优势。开发者需要根据具体的需求和场景,选择合适的函数来使用。
https://duckduckgo.com/?q=DuckDuckGo&ia=chat
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/18227912
未经授权禁止转载,违者必究!