2011-02-07 16 views

Respuesta

88

Eso sí, algo así como

value = value < 0 ? 0 : value; 

o

if (value < 0) value = 0; 

o

value = Math.max(0, value); 
+1

rápida JSPerf muestra el valor = valor <0? 0: valor; está en la parte superior http://jsperf.com/negatives-to-zero – Skeep

+2

Me gusta el 'Math.max' más, porque solo requiere referenciar' value' una vez –

26

supongo que se podría utilizar Math.max().

var num = 90; 
num = Math.max(0,num); // 90 

var num = -90; 
num = Math.max(0,num); // 0 
+0

Esta debería ser la respuesta aceptada en mi opinión. Solo digo ... :) – ksugiarto

2

x < 0 ? 0 : x hace el trabajo.

4

Si quieren 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 números grandes.

0

No creo que exista tal función con el objeto Math nativo. Debe escribir una secuencia de comandos para completar la función si necesita usarla.

3
Math.positive = function(num) { 
    return Math.max(0, num); 
} 

// or 

Math.positive = function(num) { 
    return num < 0 ? 0 : num; 
} 
+0

cero no es positivo ni negativo, su función debe ser renombrada de acuerdo con ese – Killy

Cuestiones relacionadas