在数据库中将所有内容存储为英制(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);
}
我该如何解决这个问题?
这是因为要插入int而不是double。
500ml = 16.9oz
您要在函数中插入16oz,等于473。
数字应该是双精度而不是整数。