in Javascript Non riesco a trovare un metodo per impostare i negativi a zero?JavaScript Math Object Methods - negativi a zero
-90 diventa 0
-45 diventa 0
0 diventa 0
90 diventa 90
C'è qualcosa di simile? Ho appena arrotondato i numeri.
in Javascript Non riesco a trovare un metodo per impostare i negativi a zero?JavaScript Math Object Methods - negativi a zero
-90 diventa 0
-45 diventa 0
0 diventa 0
90 diventa 90
C'è qualcosa di simile? Ho appena arrotondato i numeri.
Basta fare una cosa del genere
value = value < 0 ? 0 : value;
o
if (value < 0) value = 0;
o
value = Math.max(0, value);
Immagino che si potrebbe usare Math.max()
.
var num = 90;
num = Math.max(0,num); // 90
var num = -90;
num = Math.max(0,num); // 0
Questa dovrebbe essere la risposta accettata secondo me. Solo dicendo ... :) – ksugiarto
x < 0 ? 0 : x
fa il lavoro.
Se vuoi essere intelligente:
num = (num + Math.abs(num))/2;
Tuttavia, Math.max
o un operatore condizionale sarebbe molto più comprensibile.
Inoltre, questo ha problemi di precisione per i grandi numeri.
Non credo che esista una tale funzione con l'oggetto Math nativo. Dovresti scrivere uno script per compilare la funzione se hai bisogno di usarlo.
Math.positive = function(num) {
return Math.max(0, num);
}
// or
Math.positive = function(num) {
return num < 0 ? 0 : num;
}
zero non è né positivo né negativo, la tua funzione dovrebbe essere rinominata in base a quello – Killy
Ricordare lo zero 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
Fonte: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/
rapida JSPerf mostra value = valore <0? 0: valore; è in cima http://jsperf.com/negatives-to-zero – Skeep
Mi piace di più il 'Math.max', perché richiede solo il riferimento' value' una volta –