2012-02-08 8 views

Respuesta

11

Almacena BigDecimal como una cadena.

Puede utilizar el método toPlainString().

BigDecimal b = new BigDecimal(); 
String s = b.toPlainString(); 

Luego, cuando lo extrae de la base de datos, puede crear un nuevo BigDecimal.

BigDecimal c = new BigDecimal(String s) 

creas o no SQLite 3.0 almacena todos los tipos de datos como cadenas incluso si usted dice que debe ser un entero. Eche un vistazo al this web page from the official SQLite website y desplácese hacia abajo a la sección "Manipulación de manuscritos y soporte de BLOB". Habla de cómo le permitirá almacenar cadenas en columnas de otros tipos.

+0

No lo creo: SQLite 3.0 almacena enteros como enteros. Era la versión anterior 2.8 que almacenaba todo como cadenas. – Jeff

+0

Eso está mal. Vaya al sitio (acabo de corregir el enlace) y busque: la diferencia es que SQLite 3.0 aún almacenará los datos, incluso si no es posible realizar una conversión de formato. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

Debe incluir también la oración anterior de esa página: "Cuando los datos se insertan en una columna, esa columna intentará convertir el formato de datos en el tipo declarado de la columna". Cuando declara una columna como Integer y almacena la cadena '12345' en ella, SQLite convertirá esa cadena en un entero y la almacenará como un entero. – Jeff

0

Solo use Int aquí. Como SQlite usa 8 bytes para int, los valores máximos son 2^64, que es 1.8446744e + 19 - 1, más o menos 10^18, lo suficientemente grande para la moneda.

También nosotros

Cuestiones relacionadas