10 цифр андроид - PullRequest
       10

10 цифр андроид

0 голосов
/ 20 апреля 2011

Я пишу калькулятор для Android и хотел бы ограничить количество выводимых символов до 10 например:
1: ans = 1.23456789101
должен показать 1.23456789
2: ans = 1234.56789101
должен показать 1234.56789
3: ans = 123456789101
должен показать 1234567890
это то, что у меня есть, но оно работает только на 1 цифру перед "."

        ans = (double)Math.round(ans * 100000000) / 100000000;
        String output = String.valueOf(ans);
        if(output.endsWith(".0")){
            output=output.substring(0, output.length()-2);
        }
        textbox.setText(output);

как бы я поступил так

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Вы можете сделать это с помощью ряда выражений if о значении в сочетании с DecimalFormat

if (value >= 10 && value < 100) DecimalFormat formatter = new DecimalFormat("#.#########");
else if (value >= 100 && value < 1000)) DecimalFormat formatter = new DecimalFormat("#.########");
else if (value >= 1000 && value < 10000)) DecimalFormat formatter = new DecimalFormat("#.#######");

etc etc

textBox.setText(String.valueOf(formatter.format(value));

Я уверен, что есть более элегантный способ справиться с этим, но это по крайней мере сработает.Кроме того, для значений более 10 цифр в цепочке можно использовать цепочку if для включения некоторого усеченного кода.

1 голос
/ 20 апреля 2011

Я бы предложил использовать класс DecimalFormat .Это позволит вам настроить отображение ваших значений.Не обижай себя, выполняя подстроку от десятичного разряда, мой добрый сэр.Также ознакомьтесь с поведением округления, чтобы убедиться, что оно будет работать так, как вам нужно (вы предоставляете десятичному формату необоснованное значение).

...