в Javascript Я не могу найти способ установить негативы на ноль?
-90 становится 0 -45 становится 0 0 становится 0 90 становится 90
Есть что-нибудь подобное? У меня только округленные числа.
Просто сделайте что-то вроде
value = value < 0 ? 0 : value;
или
if (value < 0) value = 0;
value = Math.max(0, value);
Полагаю, вы могли бы использовать Math.max().
Math.max()
var num = 90; num = Math.max(0,num); // 90 var num = -90; num = Math.max(0,num); // 0
Если вы хотите быть умным:
num = (num + Math.abs(num)) / 2;
Однако, Math.max или условный оператор будет гораздо более понятным. Кроме того, это имеет проблемы с точностью для больших чисел.
Math.max
Math.positive = function(num) { return Math.max(0, num); } // or Math.positive = function(num) { return num < 0 ? 0 : num; }
x < 0 ? 0 : x делает работу.
x < 0 ? 0 : x
Запомните отрицательный ноль.
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
Источник: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/
Я не верю, что такая функция существует с собственным объектом Math. Вы должны написать скрипт для заполнения функции, если вам нужно ее использовать.