¿Cómo evitar la notación científica en doble?

Aquí está mi código simple

@Override public void onClick(View v) { try { double price = Double.parseDouble(ePrice.getText().toString()); double percent = Double.parseDouble(ePercent.getText().toString()); double priceValue = price * percent/100.0f; double percentValue = price - priceValue; moneyToGet.setText(String.valueOf(priceValue)); moneyToPay.setText(String.valueOf(percentValue)); moneyToGet.setText("" + priceValue); moneyToPay.setText("" + percentValue); // catch } catch (NumberFormatException ex) { // write a message to users moneyToGet.setText(""); } } }); 

Este es un código simple para la Calculadora de Porcentaje.

Lo que quiero es evitar la notación científica en mi calculadora porque no quiero explicar al usuario qué es la notación científica.

Por ejemplo, si quiero calcular 100,000,000 y cortar el 50% , debería darme 50,000,000, lo que me da 5,0E7. Y en mi caso, esto no tiene ningún sentido para el usuario. Y, por supuesto, sé que ambos resultados son correctos. Gracias por adelantado.

Verifique la respuesta aquí . Puedes escribir

 moneyToGet.setText(String.format("%.0f", priceValue)); 

Puedes probar este DecimalFormat

 DecimalFormat decimalFormatter = new DecimalFormat("############"); number.setText(decimalFormatter.format(Double.parseDouble(result))); 

Yo sugeriría usar BigDecimal s en lugar de double s. De esta forma, tendrá un control más preciso sobre la precisión de su cálculo. También puede obtener una String no científica usando BigDecimal.toPlainString() .

 DecimalFormat decimalFormatter = new DecimalFormat("##.############"); decimalFormatter.setMinimumFractionDigits(2); decimalFormatter.setMaximumFractionDigits(15); 

Esta opción te ayudará ##. ## sufijo 0 antes del decimal, de lo contrario la salida será .000

  btc.setText(decimalFormatter.format(btcval)); 

usa esto para mostrar contenido

Use NumberFormater como

 NumberFormat myformatter = new DecimalFormat("########"); String result = myformatter.format(yourValue);