2015-12-20 2 views
1

У меня есть арифметическая операция с результатом, который я хочу отобразить в поле EditText.Вернуть двойную как не научную строку

Когда я работаю с двойным, он возвращает мне в некоторых случаях научную нотацию.

Для примера:

5/10 * 0,001 = 0,0005

double a = 5; 
double b = 10; 
double c = 0.001; 

double result = a/10 * c; 
Log.d("Math Test",String.valueOf(result)); 

Результат:

5.0E-4

Я пытался использовать BigDescimal:

я получаю:

0.0005000000000000000104083408558608425664715468883514404296875

Но я хочу: 0,0005

EDIT: Значения приходят от пользовательского ввода, а также я мог бы быть, что это не 0,001, но 0,00001.

Калькулятор Android не имеет этой проблемы.

+1

Двойной не является ниткой. Преобразование в научную нотацию происходит, когда вы форматируете его для печати каким-либо образом, например. через вызов 'String.valueOf (double)' в вашем коде. Используйте 'DecimalFormat', чтобы получить именно то, что вы хотите. – EJP

ответ

0

Если вы используете BigDecimal, после работы с ним попробуйте использовать метод .toPlainString().

Пример:

BigDecimal номер = новый BigDecimal ("15286272825272726272,72728272");

// Распечатать System.out.println («Обычное число:» + число.toPlainString());

 Смежные вопросы

  • Нет связанных вопросов^_^