Pregunta

Tengo el número 654987. Es un ID en una base de datos. Quiero convertirlo en una cadena. El Double.ToString (valor) normal lo convierte en forma científica, 6.54987E5. Algo que no quiero.

Otras funciones de formato que he encontrado comprueba el entorno local actual y agrega miles de separadores apropiados y demás. Como es un ID, no puedo aceptar ningún formato en absoluto.

¿Cómo hacerlo?

[Editar] Para aclarar: estoy trabajando en una base de datos especial que trata todas las columnas numéricas como dobles. Double es el único tipo (numérico) que puedo recuperar de la base de datos.

¿Fue útil?

Solución

Usar largo:

long id = 654987;
String str = Long.toString(id);

Otros consejos

Utilice un NumberFormat (específicamente un DecimalFormat ):

double value = getValue();
String str = new DecimalFormat("#").format(value);

alternativamente, simplemente envíe a int (o long si el rango de valores es demasiado grande):

String str = String.valueOf((long) value);

Pero, de nuevo: ¿por qué tiene un valor entero (es decir, un `` número entero '') en una variable double en primer lugar?

Si es una identificación de entero en la base de datos, use un entero en su lugar. Luego se formateará como un entero.

¿Qué tal String.valueOf((long)value);

¿Qué pasa con:

Long.toString(value)

o

new String(value)

También puedes usar

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

Si lo que está almacenando es una ID (es decir, algo que se usa solo para identificar otra entidad, cuyo valor numérico real no tiene importancia), entonces no debería usar Double para almacenarlo. La precisión casi seguro te atornillará.

Si su base de datos no permite valores enteros, entonces debe almacenar las ID como cadenas. Si es necesario, convierta la cadena en la representación de cadena del número entero que desea usar. Con el uso apropiado de los ceros a la izquierda, puede hacer que el orden alfabético de la cadena sea el mismo que el orden numérico de las entradas.

Eso debería ayudarlo a resolver el problema.

¿Qué pasa con Long.toString (valor (largo))?

    double d = 56789;
    String s = d+"";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top