0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 5
1

Не срабатывает Math.abs()

08.03.2016, 16:23. Показов 2169. Ответов 9
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Столкнулся с проблемой в программе. Метод Math.abs просто не срабатывает, из-за этого расчеты в программе выполняются с ошибкой.
Помогите, пожалуйста, разобраться, что делаю не так.
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class SumDigits {
    public int sum(int number) {
        number = Math.abs(number);
        String digits = Integer.toString(number);
        int x = 0;
 
        for (int i = 0; i < digits.length(); ++i) {
            x = x + Character.getNumericValue(digits.charAt(i));
        }
        return x;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2016, 16:23
Ответы с готовыми решениями:

Graphics2D почему не срабатывает Math.Random?
Дошел до Graphics2D, набрал пример с книги и не работает Сам код: import java.awt.Color;...

Почему метод abs вызывается два раза?
почему метод abs вызывается два раза в методе closeToTen а в главном методе тока 1 раз public...

Не используя стандартные функции (за исключением abs), вычислить с точностью
Не используя стандартные функции (за исключением abs), вычислить с точностью

Не срабатывает метод Math.ceil
Добрый день! Только учусь js. Есть скрипт: function insertTotal() { if...

9
2882 / 2294 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.03.2016, 16:29 2
код рабочий и все там срабатывает
0
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 5
08.03.2016, 16:36  [ТС] 3
В том и проблема, что ошибки вроде как нет, но в дебаггинге смотрел, что строка с Math.abs() не меняет отрицательное число. Есть идеи, что может быть не так?
0
2882 / 2294 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.03.2016, 16:37 4
меняет
0
943 / 687 / 229
Регистрация: 28.04.2013
Сообщений: 1,924
08.03.2016, 16:37 5
ТемныйВластелин,

Java
1
2
3
4
5
6
7
8
9
10
    public static int sum(int number) {
        number = Math.abs(number);
        int result = 0;
        while (number != 0) {
            //Суммирование цифр числа
            result = result + (number % 10);
            number /= 10;
        }
        return result;
    }
1
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 5
08.03.2016, 16:48  [ТС] 6
Большое спасибо за более эффективный вариант решения.
К сожалению проблема с Math.abs() остается актуальной - он не работает(
Возможно ошибка в idea (хотя слабо в это верится)
0
2882 / 2294 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.03.2016, 16:52 7
Java
1
2
3
    public static void main(String[] args) {
        System.out.println(sum(-123));
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
    public static int sum(int number) {
        System.out.println(number); // -123
        number = Math.abs(number);
        System.out.println(number); // 123
        String digits = Integer.toString(number);
        int x = 0;
 
        for (int i = 0; i < digits.length(); ++i) {
            x = x + Character.getNumericValue(digits.charAt(i));
        }
        return x;
    }
проблема не в IDEA, инфа 146%
0
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 5
08.03.2016, 17:40  [ТС] 8
А как тогда понять это?
Я же не из вредности не соглашаюсь)
У меня складывается впечатление, что проблема с IDEA конкретно у меня
Миниатюры
Не срабатывает Math.abs()  
0
Эксперт Java
2393 / 2219 / 564
Регистрация: 28.12.2010
Сообщений: 8,662
08.03.2016, 17:44 9
Цитата Сообщение от ТемныйВластелин Посмотреть сообщение
А как тогда понять это?
https://docs.oracle.com/javase... #MAX_VALUE
2
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 5
08.03.2016, 17:47  [ТС] 10
О, теперь понятно. Прошу прощения)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2016, 17:47
Помогаю со студенческими работами здесь

Почему не срабатывает функция Math.Floor ?
Доброго времени суток! Надо найти мин. и мак. значения массива. Функция Math.Floor показывает то...

Даны натуральное число n, действительные числа а1,…,аn.вычислить abs(a1)+…+abs(an)
даны натуральное число n, действительные числа а1,…,аn.вычислить abs(a1)+…+abs(an) (a1 и an по...

std::abs vs global abs
Откуда растут ноги такого поведения, что std::abs возвращает double, а глобальная ::abs() - int ?...

Заменить Math.Min, Math.Max операторами if-else
Доброго времени. Как можно условия формул (Math.Min,Math.Max) заменить операторами if. Как в итоге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru