我将sqlite数据库中的变量存储为REAL,但在我的应用程序中,我需要将其用作BigDecimal。 问题是,我无法将我的BigDecimal变量保存到我的sqlite而不将其转换为float或double。
所以我做了以下事情:
bigDecimal.floatValue();
但这样做会导致精度下降。
例如,
如果我把我的editText从中获取变量:123456789
将它从bigDecimal转换为float后我得到:123456792
如果我尝试将bigdecimal强制转换为字符串,也会发生同样的情况:
String.valueOf(bigDecimal);
只有在我输入的变量长度至少为8位时才会出现问题。 如果它的十进制数字和数字在七位数之后总是不同,它的行为方式相同。
是正常行为吗?怎么避免呢?