Flutter Sqlite double с 0 после десятичной дроби хранится как целое число - PullRequest
0 голосов
/ 17 октября 2019

Сохраняет значение двойного типа в SQLite как тип данных REAL с 0 после десятичной точки (например, 100,0 или 0,0) при извлечении из базы данных. Значение имеет тип данных Integer.

Если я, например, введу значение Double15,25 или 0,5 при получении это был двойной тип. Таким образом, РЕАЛЬНЫЙ тип данных для столбца работает.

Любые идеи, как я могу преодолеть это без преобразования каждого поля после извлечения из БД.

Вот некоторый код.

Вхелпер

Class Plan
  int id;
  String renglon;
  double valorInicial;
  double valorActual;

Map<String, dynamic> toMap() {
    var map = <String, dynamic>{
      columnRenglon: renglon,
      columnValorInicial: valorInicial,
      columnValorActual:valorActual
    };
    if (id != null) {
      map[columnId] = id;
    }
    return map;
  }

Class DatabaseHelper
OnCreate
db.execute('''
              CREATE TABLE $tablePlan (
                $columnId INTEGER PRIMARY KEY,
                $columnRenglon TEXT NOT NULL,
                $columnValorInicial REAL NOT NULL,
                $columnValorActual REAL
              )
              ''');

Future<int> insertRenglon(Plan plan) async {
    Database db = await database;
    int id = await db.insert(tablePlan, plan.toMap());
    return id;
  }

Future<List>queryTodo()async{
    Database db = await database;
    List<Map> maps = await db.query(tablePlan);
    return maps;
  }

при использовании

var renglon = {"renglon": "dummy",
      "valor_inicial": 20000.0,
      "valor_actual": 0.0}

DatabaseHelper helper = DatabaseHelper.instance;
Plan plan = Plan.fromMap(renglon);
await helper.insertRenglon(plan);

var renglonFromDB = await helper.queryAll();
      print(renglonFromDB[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...