2013-10-25 1 views
-1

Я сохраняю данные float в sqlite trough на моем апликате. Проблема в том, что когда я сохраняю значение 99999.99, sqlite округляет его до 100000.00. И то же самое происходит, когда я пытаюсь сэкономить 999999.99, округляя его до 1000000.00. Что происходит? Проблема заключается в таблице «custo».Сохранить число с плавающей запятой sqlite error rounding

public static final String fghs_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + 
    asdfgasfdg + " (" +  
    cust + " double, " + 
+0

Какой тип данных используется для этого? –

+0

Я использую двойной. – Roland

+2

Какой код вы используете для хранения/получения данных столбца? –

ответ

0

кажется, что ваш тип столбца таблицы sqlite является целым числом. Если это так, используйте REAL в качестве типа данных.

+0

Он использует DOUBLE, что является таким же, как REAL. –

0

Вы должны изменить переменную float в java на двойную, которая имеет более высокую точность. Следующая проблема answer.

Как указано в этом answer, следующий хороший пример поплавка точности:

float f = 22.2; 
printf("The number is: %.9f\n", f);<> 

Выход:

22.200000763 
+0

Я превратился в двойное, и он стал округлять. – Roland

+0

Пожалуйста, покажите код, который вы используете для создания таблицы базы данных, и трек, который вы используете для вставки в базу данных. –

+0

код здесь. Я пробовал считать десятичным, с двойным и округлением. – Roland

Смежные вопросы