Dan*_*Dan 20 javascript bit-manipulation bitwise-operators
我想在javascript中截断一个数字,这意味着要删除小数部分:
trunc(2.6)== 2
trunc(-2.6)== -2
经过严格的基准测试后,我的回答是
function trunc (n) {
return ~~n;
}
// or
function trunc1 (n) {
return n | 0;
}
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 34
作为@Daniel答案的补充,如果您想要始终截断为零,您可以:
function truncate(n) {
return n | 0; // bitwise operators convert operands to 32-bit integers
}
Run Code Online (Sandbox Code Playgroud)
要么:
function truncate(n) {
return Math[n > 0 ? "floor" : "ceil"](n);
}
Run Code Online (Sandbox Code Playgroud)
两者都会为正数和负数提供正确的结果:
truncate(-3.25) == -3;
truncate(3.25) == 3;
Run Code Online (Sandbox Code Playgroud)
Dan*_*llo 13
对于正数:
Math.floor(2.6) == 2;
Run Code Online (Sandbox Code Playgroud)
对于负数:
Math.ceil(-2.6) == -2;
Run Code Online (Sandbox Code Playgroud)
Iva*_*van 10
您可以使用toFixed方法,该方法还允许指定要显示的十进制数字的数量:
var num1 = new Number(3.141592);
var num2 = num1.toFixed(); // 3
var num3 = num1.toFixed(2); // 3.14
var num4 = num1.toFixed(10); // 3.1415920000
Run Code Online (Sandbox Code Playgroud)
请注意toFixed舍入数字:
var num1 = new Number(3.641592);
var num2 = num1.toFixed(); // 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33476 次 |
| 最近记录: |