我有一个除法的结果,我希望放弃结果数的小数部分。

我该怎么做呢?


当前回答

你可以用…

Math.trunc()(截断小数部分,也见下文) Math.floor()(向下舍入) Math.ceil()(取整) Math.round()(四舍五入到最接近的整数)

取决于你想怎么去除小数点。

Math.trunc()尚未在所有平台(即IE)上得到支持,但您可以在此期间轻松使用polyfill。

另一种具有优秀平台支持的截断小数部分的方法是使用位操作符(.e。g | 0)。对数字使用位操作符的副作用是,它会将其操作数视为有符号32位整数,因此删除了小数部分。请记住,这也会破坏大于32位的数字。


你可能还在谈论浮点算术小数舍入的不准确性。

必读书目-每个计算机科学家都应该知道浮点运算。

其他回答

你也可以

parseInt(a/b)

使用Math.round()函数。

Math.round(65.98) // will return 66 
Math.round(65.28) // will return 65

如果不关心舍入,只需将数字转换为字符串,然后删除句号之后的所有内容,包括句号。不管有没有小数点,这个都成立。

const sEpoch = ((+new Date()) / 1000).toString();
const formattedEpoch = sEpoch.split('.')[0];

这是为那些想阻止用户输入十进制数字的人准备的

<input id="myInput" onkeyup="doSomething()" type="number" />

<script>
    function doSomething() {

        var intNum = $('#myInput').val();

        if (!Number.isInteger(intNum)) {
            intNum = Math.round(intNum);
        }

        console.log(intNum);
    }
</script>

使用Math.round()。

(亚历克斯的回答更好;我做了一个假设:)