Положительное число к отрицательному числу в JavaScript?
В основном, обратная сторона abs. Если у меня есть:
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)
независимо от того, какая консоль всегда возвращает положительное число. Как мне это исправить?
Если я это сделаю:
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){
_selector.animate({left:(-slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}
else{
_selector.animate({left:(slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}
это работает Тхо, но это не "сухой" и просто глупо иметь весь блок кода только для для -
7 ответов:
Math.abs(num) => Always positive -Math.abs(num) => Always negative
однако вы понимаете, что для вашего кода
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum } console.log(slideNum)
если найденный индекс равен 3, а slideNum-3,
тогда 3 false
так что slideNum остается положительным??Это больше похоже на логическую ошибку мне.
основная формула для обращения положительного к отрицательному или отрицательного к положительному:
i - (i * 2)
вы уверены, что контроль идет в тело
if
? Как в условиеif
когда-нибудь правда? Потому что если это не так, то телоif
никогда не будет казнен иslideNum
останется положительным. Я рискну предположить, что это, вероятно, то, что вы видите.если я попробую следующее в Firebug, это, кажется, работает:
>>> i = 5; console.log(i); i = -i; console.log(i); 5 -5
slideNum *= -1
также должны работать. Как и должноMath.abs(slideNum) * -1
.
чтобы получить отрицательную версию числа в JavaScript вы всегда можете вы
~
оператор побитового.например, если у вас есть
a = 1000
и вам нужно преобразовать его в отрицательный вы могли бы сделать следующее:
a = ~a + 1;
что привело бы к
a
будучи -1000.
Если вы не хотите использовать математику.Abs * -1 вы можете это простое утверждение if: P
if (x > 0) { x = -x; }
конечно, вы могли бы сделать эту функцию, как это
function makeNegative(number) { if (number > 0) { number = -number; } }
makeNegative(-3) => -3 makeNegative(5) => -5
надеюсь, что это помогает! Математика.abs, скорее всего, будет работать для вас, но если это не так мало