Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Как переместить запятую

#java #android


public static void main(String args[]) {
        System.out.println(convert("5"));
        System.out.println(convert("56"));
        System.out.println(convert("560"));
        System.out.println(convert("5600"));
    }

    public static double convert(String str){
        double asd=Double.valueOf(str);
        return asd/100;
    }




0.05
0.56
5.6
56.0


Все работает кроме 2 последних чисел.
Проблема в том что должно быть 5.60 и 56.00.
А мы имеем 5.6 и 56.0

Что я делаю не так?
    


Ответы

Ответ 1



Немного теории: Для того чтобы вернуть данные, вам необходимо отформатировать их. Для этого можно использовать метод .format() из класса String, который вернет отформатированные данные в качестве строки. public PrintStream format(String format, Object... args) String format - это строка, определяет шаблон, согласно которому будет происходить форматирование. Object... args - это аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Число аргументов является переменной и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено Спецификацией виртуальной машины Java ™. Поведение на нулевом аргументе зависит от преобразования. Взято из офф. документации Oracle Согласно заданному нами шаблону мы берем аргумент под номером %1$ и говорим что нужно вывести .2f- два знака после запятой. Решение: Измените свою функцию Convert следующим образом: public String convert(String str) { double myDouble = Double.valueOf(str) / 100; return String.format("%1$,.2f", myDouble); } Надеюсь мой ответ помог вам.

Комментариев нет:

Отправить комментарий