Перейти к содержимому

Как из отрицательного числа сделать положительное js

  • автор:

Отрицательные числа в JavaScript

Числа могут быть отрицательными. Для этого перед числом необходимо поставить знак минус:

let a = -1; alert(a); // выведет -1

Знак минус можно писать как к числам, так и к переменным:

let a = 1; let b = -a; // записали в b содержимое a с обратным знаком alert(b); // выведет -1
let a = 1; alert(-a); // выведет -1

Создайте переменную a со значением -100 . Выведите это значение на экран.

Создайте переменную a , запишите в нее какое-нибудь положительное или отрицательное число. Выведите на экран это число с обратным знаком.

Как перевести положительное число в отрицательное и наоборот на JS?

Как сделать так ,чтобы 0 не становился -0 при вызове функции с массивом содержащей 0? Спасибо.

invert([0,1,2,3,4,5]); (6) [-0, -1, -2, -3, -4, -5]
  • Вопрос задан более трёх лет назад
  • 23798 просмотров

Комментировать
Решения вопроса 4
Алексей Уколов @alexey-m-ukolov Куратор тега JavaScript

if(array[i] === «0»)

Строгое сравнение, следовательно, никогда не сработает, если передавать числа, а не строки.

array[i] = array[i] * (-1);

А эта строка вообще всегда безусловно выполняется.

function invert(array) < for (let i = 0; i < array.length; i++) < if (array[i] != 0) < array[i] = array[i] * -1; >> return array ; >

5c07bacb8185e559423888.png

Ответ написан более трёх лет назад
Нравится 2 1 комментарий
DPS_ninja @DPS_ninja Автор вопроса
Спасибо! Ваш вариант больше нравится! 🙂

Decadal

У вас строгое сравнение с «0»
Уберите кавычки для нуля вот здесь:
if(array[i] === «0») < Ответ написан более трёх лет назад Нравится 1 3 комментария
DPS_ninja @DPS_ninja Автор вопроса

function invert(array) <
for (let i = 0; i < array.length; i++) <
if(array[i] == 0) <
array[i] = array[i] * 1;
>
array[i] = array[i] * (-1);
>
return array ;
>

undefined
invert([0,1,2,3,4,5]);
(6) [-0, -1, -2, -3, -4, -5]

Decadal

array[i] = array[i] * (-1);

Замените на
else <
array[i] = array[i] * (-1);
>

DPS_ninja @DPS_ninja Автор вопроса
Кратко о себе: Я есть
Можно просто написать

for (let i = 0; i < array.length; i++) array[i] = -array[i] || 0;

Ответ написан более трёх лет назад

Decadal

вы в консольке js давно выполняли -1*0 ?

Decadal

-0 практически то же самое что и 0, вот только если делить на 0, будет Infinity, а если делить на -0, будет -Infinity. Разница в бесконечность.

Decadal, Точно - такая распространенная операция - делить на нуль, как я мог это упустить. (поправил код, спасибо)

Decadal

Дмитрий, ну да ну да, программированию ж точность не нужна, это не математика, тут же можно забивать на мелочи, не ставить фигурные скобки для условия с одним действием, опускать типы и всё такое. Да?

Math.abs()

Поскольку метод abs() является статическим методом объекта Math , вы всегда должны использовать его как Math.abs() , а не пытаться вызывать метод на созданном объекте Math (поскольку объект Math не является конструктором).

Примеры

Пример: поведение метода Math.abs()

Метод вернёт NaN , если в него передать нечисловую строку или значение undefined /ничего не передавать. Метод вернёт 0, если в него передать значение null .

.abs("-1"); // 1 Math.abs(-2); // 2 Math.abs(null); // 0 Math.abs(""); // 0 Math.abs([]); // 0 Math.abs([2]); // 2 Math.abs([1, 2]); // NaN Math.abs(>); // NaN Math.abs("string"); // NaN Math.abs(); // NaN 

Спецификации

Specification
ECMAScript Language Specification
# sec-math.abs

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 6 янв. 2024 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

Как из отрицательного числа сделать положительное js

Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1

Подскажите пожалуйста функция которая переводит отрицательное число в положительное, например есть число -954212 мне нужно сделать из него 954212

З.Ы. Не кидайте пож. в меня гнилыми помидорами

Дата 14.12.2004, 18:02 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71

number:=abs(number);

Дата 14.12.2004, 18:11 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1

Спасибо, тема закрыта

Дата 14.12.2004, 18:11 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 564
Регистрация: 15.9.2004
Где: Ставрополь, СЗ ра йон

Репутация: 1
Всего: 5

или можно так:
number:=number*(-1);
Работай на себя
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.

Дата 14.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1

Тоже спасибо буду знать

Дата 14.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7

number:=-number;
number:=-1*number;
Сдерживаю себя от хорошего броска уже разложившейся большой такой помидориной. %:-)

Дата 14.12.2004, 18:13 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360

(not -954212)+1

Дата 14.12.2004, 18:13 (ссылка) | (голосов: 0) Загрузка .

chislo:=chislo*(-1); или
chislo:=0-chislo;

Дата 14.12.2004, 18:14 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360

получше моего будет

Дата 14.12.2004, 18:22 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1

про 0-chislo написал я, Vladimir13, просто не посмотрел что не зарегестрировался.
Лучший метод - метод тыкаобращаться по адресу: mvdr

Дата 14.12.2004, 18:23 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Модератор
Сообщений: 20567
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 453

О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

Дата 14.12.2004, 18:29 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360

Цитата(Akina @ 14.12.2004, 17:23)
x=x*sign(x)

Ага, а может sqrt(sqr(x)) ?
Ну , не увлекайтесь
0-chislo лучший метод. Выполняется за такт Быстрее просто невозможно сделать.

Дата 14.12.2004, 18:34 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71

Цитата(sergej @ 14.12.2004, 18:29)
0-chislo лучший метод

это только в том случае, если число гарантированно отрицательное

Дата 14.12.2004, 18:49 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1

так на это дело можно условие поставить: if a<0 then a:=0-a;

хотя в условии стоит, что число гарантировано отрицательное

Лучший метод - метод тыкаобращаться по адресу: mvdr

Дата 14.12.2004, 18:50 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24

Цитата(Perchilla @ 14.12.2004, 18:34)
это только в том случае, если число гарантированно отрицательное

Внатуре.
Лучший метол, это который дал Perchilla, ещё в самом начале, через модуль.
И дальше не было необходимости всё кидать, все остальные методы, хуже и бесполезные, т.к. автор уже скорее всего всё сделал что ему было надо, а больше врядли кому понадобится ответ на такой сложный вопрос.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *