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
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-2025
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/18227912
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2023-06-03 树莓派如何通过 raspi-config 关闭桌面模式 All In One
2023-06-03 树莓派如何查看电源的电压 All In One
2023-06-03 How to fix the for...in loop errors in Python All In One
2022-06-03 SwiftUI MapKit All In One
2021-06-03 ERR_NETWORK_CHANGED All In One
2021-06-03 十万个为什么-地铁是如何计算车厢拥挤度的?
2020-06-03 js function call hacker