Chuyển đổi số thành một chuỗi và vứt bỏ tất cả mọi thứ sau thập phân.
trunc = function(n) { return Number(String(n).replace(/\..*/, "")) }
trunc(-1.5) === -1
trunc(1.5) === 1
Sửa 2013-07-10
Như đã chỉ ra bởi minitech và thứ hai nghĩ rằng phương pháp chuỗi dường như một chút quá mức. Vì vậy, so sánh các phương pháp khác nhau được liệt kê ở đây và các nơi khác:
function trunc1(n){ return parseInt(n, 10); }
function trunc2(n){ return n - n % 1; }
function trunc3(n) { return Math[n > 0 ? "floor" : "ceil"](n); }
function trunc4(n) { return Number(String(n).replace(/\..*/, "")); }
function getRandomNumber() { return Math.random() * 10; }
function test(func, desc) {
var t1, t2;
var ave = 0;
for (var k = 0; k < 10; k++) {
t1 = new Date().getTime();
for (var i = 0; i < 1000000; i++) {
window[func](getRandomNumber());
}
t2 = new Date().getTime();
ave += t2 - t1;
}
console.info(desc + " => " + (ave/10));
}
test("trunc1", "parseInt");
test("trunc2", "mod");
test("trunc3", "Math");
test("trunc4", "String");
Kết quả, trong đó có thể thay đổi dựa trên phần cứng, như sau:
parseInt => 258.7
mod => 246.2
Math => 243.8
String => 1373.1
Các Math.floor phương pháp/ceil là nhẹ nhanh hơn parseInt và mod. Chuỗi thực hiện kém so với các phương thức khác.
làm tròn và cắt bỏ 2 hoạt động khác nhau. Bạn đang cố gắng làm cái nào? –
'.substring()' hoàn toàn là một hàm trong javascript. –
** PHƯƠNG PHÁP ĐƯỢC GỌI '.toFixed()' ** – neaumusic