javascript - siempre - que hace el math abs
Métodos de Javascript Math Object-negativos a cero (7)
No creo que tal función exista con el objeto Math nativo. Debe escribir una secuencia de comandos para completar la función si necesita usarla.
en Javascript, parece que no puedo encontrar un método para establecer los negativos en cero?
-90 se convierte en 0
-45 se convierte en 0
0 se convierte en 0
90 se convierte en 90
¿Hay algo por el estilo? Acabo de redondear los números.
Recuerde el cero negativo.
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
Fuente: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/
Si quieres ser inteligente:
num = (num + Math.abs(num)) / 2;
Sin embargo, Math.max
o un operador condicional sería mucho más comprensible.
Además, esto tiene problemas de precisión para grandes cantidades.
Solo haz algo como
value = value < 0 ? 0 : value;
o
if (value < 0) value = 0;
o
value = Math.max(0, value);
Supongo que podrías usar Math.max()
.
var num = 90;
num = Math.max(0,num); // 90
var num = -90;
num = Math.max(0,num); // 0
x < 0 ? 0 : x
x < 0 ? 0 : x
hace el trabajo.
Math.positive = function(num) {
return Math.max(0, num);
}
// or
Math.positive = function(num) {
return num < 0 ? 0 : num;
}