trong Javascript, tôi dường như không thể tìm thấy một phương pháp nào để đặt phủ định thành 0?
-90 trở thành 0
-45 trở thành 0
0 trở thành 0
90 trở thành 90
Có điều gì như vậy không? Tôi vừa làm tròn số.
Câu trả lời:
Chỉ cần làm một cái gì đó như
value = value < 0 ? 0 : value;
hoặc là
if (value < 0) value = 0;
hoặc là
value = Math.max(0, value);
Math.max
một nhất, bởi vì nó chỉ đòi hỏi tham khảo value
một lần
Tôi cho rằng bạn có thể sử dụng Math.max()
.
var num = 90;
num = Math.max(0,num); // 90
var num = -90;
num = Math.max(0,num); // 0
Math.max(0, NaN)
và Math.max(0, undefined)
trở lại NaN
, do đó bạn có thể muốn làm một cái gì đó dọc theo những dòng:Math.max(0, num) || 0
Math.positive = function(num) {
return Math.max(0, num);
}
// or
Math.positive = function(num) {
return num < 0 ? 0 : num;
}
x < 0 ? 0 : x
Làm công việc .
Ghi số 0 âm.
function isNegativeFails(n) {
return n < 0;
}
function isNegative(n) {
return ((n = +n) || 1 / n) < 0;
}
isNegativeFails(-0); // false
isNegative(-0); // true
Math.max(-0, 0); // 0
Math.min(-0, 0); // -0
Nguồn: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/
Tôi không tin rằng một hàm như vậy tồn tại với đối tượng Math gốc. Bạn nên viết script để điền vào hàm nếu cần sử dụng.