将英制(fl oz)的数据转换为公制(mL),然后再次返回

问题描述 投票:0回答:1

在数据库中将所有内容存储为英制(fl。oz),如果用户选择将其转换为公制(mL),则转换为公制(mL)。

计算是即时完成的,并在用户界面上进行了更新。

我的问题是,因为我将数据存储为oz。如果用户正在使用ml。添加到他们的总数中,那么当显示的总数显着减少时。例如。 500mL转换为16oz,然后转换为473mL的mL。

以下是我的转换公式:_toMetric用于值来自数据库的fl。盎司和_toImperial用于将用户输入的金额转换为盎司。在存储数据库之前。

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

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

我该如何解决这个问题?

database sqlite flutter data-conversion
1个回答
0
投票

这是因为要插入int而不是double。

500ml = 16.9oz

您要在函数中插入16oz,等于473。

数字应该是双精度而不是整数。

© www.soinside.com 2019 - 2024. All rights reserved.