题解 | #向下取整#

向下取整

http://www.nowcoder.com/practice/f8ed9b274e0e4dfd830004bd4ad3572b

要求以数字的形式返回数字参数向下取整的结果。

function _floor(number) {
    // 方法1 ---------- floor()
    // return Math.floor(number);
    
    // 方法2 ------------- trunc()
    // return Math.trunc(number);
    // Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分。
    
    // 方法3 -------- split()
    // let arr = number.toString().split(".");
    // return +arr[0];
    
    // 方法4 ------- parseInt()
    // return parseInt(number);
    
    // 方法5 --------- 评论区看到的方法;不过我有个疑问:js小数运算不是不准吗,为什么这样可以呢?
    // return number-number%1;
    
    // 方法6 ---------- 评论区所见,不是很懂
    // return ~~number;
    
    // 方法7 ------------ 评论区所见,不是很懂
    return number >> 0; // number >>> 0;
}
_floor(2.56);
全部评论
~~也是一样的原理,~单目操作符,即对一个数的二进制按位取反。十进制转二进制。两次取反回到原来的正负。
3 回复 分享
发布于 2022-09-23 14:12 上海
>>是右移运算符。按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。十进制转二进制取整为基础,那么>>0就可得到是向下取证.用的是十进制转二进制,那么>>0,<<0,>>>0应该是都可以
3 回复 分享
发布于 2022-09-23 14:03 上海

相关推荐

喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务