como hacer q 0.000001 sea 1e-6 y no cero???

fredo
10 de Junio del 2004
Podeis ayudarme con esto que no se como solucionarlo???
tengo una variable definida como double y que puede alcanzar valores cercanos a 25e-6 y cuando la meto en un TextField me la redondea a cero y yo quiero que me la represente como es 25e-6 y no la redondee, que puedo hacer??
Muchas gracias por adelantado
un saludo

Lucas
10 de Junio del 2004
El problema puede que no sea el redondeo, sino la capacidad de representar numeros del double. Aparte de tener una precision limitada, ciertos valores no los representa bien y los valores extremos tienen problemas. Para poder trabajar con numero de precision casi infinita (arbitraria), utiliza java.math.BigDecimal.

moginn
10 de Junio del 2004
importa java.text.DecimalFormat y haz por ejemplo:

DecimalFormat d = new DecimalFormat("##E00");
String s = d.format(25e-6);
System.out.print(s); // Se imprimirá tal como has dicho

Para más detalles consulta la clase DecimalFormat del api de java

Jose Carlos
10 de Junio del 2004
Hola,

No lo he hecho nunca, pero creo recordar que había una clase NumberFormat con la que se podían solucioanr esos problemas :-)

Posiblemente lo que esté ocurriendo es que en algun momento antes de meterlo en el textfield estes convirtiendo ese Doble a entero o alguna cosa así. Intenta hacer pruebas parciales con un "System.out.println" para que te lo muestre por consola y, si sale bien por ahí, debe salir bien en el TextField :)

Saludos,

fredo
10 de Junio del 2004

No porque lo que hago es esto:
string st;
double Hoc,Hoe;
Hoe=new Double (TxH[1][4].getText().trim ()).doubleValue(); AQUI Hoe=25e-6
Hoc=Hoe;
st=""+Math.round(1000*Hoc)/1000;
TxH[1][8].setText(st);

y cuando visualizo TxH[1][8] ya me sale como cero