我有一个除法的结果,我希望放弃结果数的小数部分。
我该怎么做呢?
我有一个除法的结果,我希望放弃结果数的小数部分。
我该怎么做呢?
当前回答
如果不关心舍入,只需将数字转换为字符串,然后删除句号之后的所有内容,包括句号。不管有没有小数点,这个都成立。
const sEpoch = ((+new Date()) / 1000).toString();
const formattedEpoch = sEpoch.split('.')[0];
其他回答
你可以用…
Math.trunc()(截断小数部分,也见下文) Math.floor()(向下舍入) Math.ceil()(取整) Math.round()(四舍五入到最接近的整数)
取决于你想怎么去除小数点。
Math.trunc()尚未在所有平台(即IE)上得到支持,但您可以在此期间轻松使用polyfill。
另一种具有优秀平台支持的截断小数部分的方法是使用位操作符(.e。g | 0)。对数字使用位操作符的副作用是,它会将其操作数视为有符号32位整数,因此删除了小数部分。请记住,这也会破坏大于32位的数字。
你可能还在谈论浮点算术小数舍入的不准确性。
必读书目-每个计算机科学家都应该知道浮点运算。
例如:
var x = 9.656;
x.toFixed(0); // returns 10
x.toFixed(2); // returns 9.66
x.toFixed(4); // returns 9.6560
x.toFixed(6); // returns 9.656000
or
parseInt("10"); // returns 10
parseInt("10.33"); // returns 10
parseInt("10 20 30"); // returns 10
parseInt("10 years"); // returns 10
parseInt("years 10"); // returns NaN
在ES2015中,Math.trunc()是可用的。
Math.trunc(2.3) // 2
Math.trunc(-2.3) // -2
Math.trunc(22222222222222222222222.3) // 2.2222222222222223e+22
Math.trunc("2.3") // 2
Math.trunc("two") // NaN
Math.trunc(NaN) // NaN
IE11及以下版本不支持,但在Edge和其他现代浏览器中都可以运行。
以下是在上述帖子的帮助下详细解释的压缩:
1. Math.trunc():用于删除后面带点的数字。它隐式地转换。但是,在IE中不支持。
例子:
Math.trunc(10.5) // 10
Math.trunc(-10.5) // -10
其他可选方法:按位使用not运算符:
例子:
x = 5.5
~~x // 5
2. Math.floor():用于给出可能的最小整数值。所有浏览器都支持它。
例子:
Math.floor(10.5) // 10
Math.floor(-10.5) // -11
3.Math.ceil():用于给出可能的最高整数值。所有浏览器都支持它。
例子:
Math.ceil(10.5) // 11
Math.ceil(-10.5) // -10
4. Math.round():四舍五入到最接近的整数。所有浏览器都支持它。
例子:
Math.round(10.5) // 11
Math.round(-10.5)// -10
Math.round(10.49) // 10
Math.round(-10.51) // -11
在这个例子中,我使用Number。固定和数学。trunc方法:
const num = 1.234
Number(num.toFixed(0)); // Returns 1
Number(num.toFixed(2)); // Returns 1.23
Math.trunc(num); // Returns 1
toFixed()方法使用定点表示法格式化数字。 Math.trunc()静态方法通过删除任何小数来返回数字的整数部分。