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