Android Calculator Обрезание ненужного десятичного знака после результата - PullRequest
0 голосов
/ 19 августа 2011

Я получаю результаты всегда в десятичном формате, как если бы я ввел «1», он преобразуется в «1,0», и окончательный результат также приходит в десятичном формате.Может кто-нибудь сказать мне, как отображать пользовательский ввод всегда в простом формате вместо десятичного формата?

Это связано с моим предыдущим постом:

private void handleEquals(int newOperator) {
if (hasChanged) {
switch (operator) {
case 1:
    num = num + Double.parseDouble(txtCalc.getText().toString());
    break;
case 2:
    num = num - Double.parseDouble(txtCalc.getText().toString());
    break;
case 3:
    num = num * Double.parseDouble(txtCalc.getText().toString());
    String strNum = null; 
    strNum = Double.toString(num);
    if(strNum.contains("E")){
    strNum = strNum.substring(0, 6) + strNum.substring(strNum.indexOf("E"));
    }
    Log.i("MULTIPLICATION","Checking Precision");
    System.out.println("New StrNum is: " + strNum);
    num = Double.valueOf(strNum);
    break;
case 4:
    num = num / Double.parseDouble(txtCalc.getText().toString());
    break;
}

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Вам следует проверить, является ли ваш номер целым числом:

String result;

if (num==(int)num) {
    result = String.valueOf((int)num);
} else {
    result = String.valueOf(num);
}

// display result to user
0 голосов
/ 19 августа 2011

Добавьте следующую строку перед break в каждом случае.

int number = (int)num;

Обновленный ответ:

int num;
num = num + (int)Double.parseDouble(txtCalc.getText().toString());

или

int num;
num = num + Integer.parseInt(txtCalc.getText().toString());
...