webentwicklung-frage-antwort-db.com.de

Javascript Math Object Methods - Negative gegen Null

in Javascript kann ich scheinbar keine Methode finden, um Negative auf Null zu setzen?

-90 wird 0
- 45 wird zu 0
0 wird 0
90 wird 90

Gibt es so etwas? Ich habe gerade Zahlen gerundet.

55
FFish

Mach einfach so etwas

value = value < 0 ? 0 : value;

oder

if (value < 0) value = 0;

oder

value = Math.max(0, value);
124
aioobe

Ich denke, Sie könnten Math.max() verwenden.

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

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

Wenn du klug sein willst:

num = (num + Math.abs(num)) / 2;

Math.max oder ein bedingter Operator wäre jedoch viel verständlicher.
Dies hat auch Genauigkeitsprobleme für große Zahlen.

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

// or 

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

x < 0 ? 0 : x erledigt die Arbeit.

3
Alexandre C.

Erinnere dich an die negative Null.

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

Quelle: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/

0
Killy

Ich glaube nicht, dass eine solche Funktion mit dem nativen Math-Objekt existiert. Sie sollten ein Skript schreiben, um die Funktion auszufüllen, wenn Sie sie benötigen. 

0
jacobangel