Преобразование данных из имперских (жидких унций) в метрические c (мл) и обратно - PullRequest
0 голосов
/ 24 апреля 2020

Сохранение всего в базе данных как имперских (fl. Oz), а затем преобразование в метри c (mL), если пользователь выбрал это в качестве своей предпочтительной системы измерения.

Расчет выполняется на лету и обновил пользовательский интерфейс.

Моя проблема в том, что я храню данные как oz. если пользователь использует мл. добавить к их общей сумме, тогда, когда общая сумма будет значительно меньше. Например, 500 мл конвертируется в 16 унций, а затем обратно в мл как 473 мл.

Вот мои формулы преобразования: _toMetri c используется, когда значение поступает из базы данных как fl. oz и _toImperial используется для преобразования введенной пользователем суммы в унции. перед сохранением базы данных.

  double _toMetric(int value) {
    return (value * 29.574);
  }

  double _toImperial(int value) {
    return (value / 29.574);
  }

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 24 апреля 2020

это потому, что вы вставляете int вместо двойного.

500ml = 16.9oz

вы вставляете в свою функцию 16oz, что равно 473.

число должно быть двойным, а не целым числом.

...