Pull to refresh

Comments 7

Умножаем на -1, не лучший ход. Может abs?

Ну так нам надо отрицательное число получить (если заметили знак минуса), а не его абсолютную, положительную величину. Можно, конечно, вместо умножения сделать инверсию битов, и прибавить единицу, например так: num = ~num + 1;

я по тексту понял что из отрицательного получают положительное. если так, то таких кодеров гнать. умножение, да еще и отрицательных чисел очень затратная операция, как по процу так и по времени. а потом удивляемся, чего это все тормозит.

На самом деле задача такая: если число положительное, то положительным оно и останется. Если оно отрицательное, то полученное из строки число надо сделать отрицательным (т.к. метод parseNumber(str, base) не учитывает знак числа). Самый простой способ сделать это прилепить if в конце (что-то вроде):

if (sign < 0)
	result = -result;

Уже исправил в коде.

не очевидно. однозначное решение result = 0-result;

Непонятен юзкейс перевода не десятиных чисел в дабл. То, что приходится время от времени переводить из строк числа разных систем счисления в целочисленные типы это да, а вот в число с плавающей точкой, зачем? Есть какой-нибудь пример, откуда оно такое может прийти?

Надеюсь, искренне надеюсь, что это не для собеседований.

Sign up to leave a comment.

Articles