Android:BigDecimal to Float数据丢失

时间:2016-09-01 08:47:26

标签: android bigdecimal

我将sqlite数据库中的变量存储为REAL,但在我的应用程序中,我需要将其用作BigDecimal。 问题是,我无法将我的BigDecimal变量保存到我的sqlite而不将其转换为float或double。

所以我做了以下事情:

bigDecimal.floatValue();

但这样做会导致精度下降。

例如,

如果我把我的editText从中获取变量:123456789
将它从bigDecimal转换为float后我得到:123456792

如果我尝试将bigdecimal强制转换为字符串,也会发生同样的情况:

String.valueOf(bigDecimal);

只有在我输入的变量长度至少为8位时才会出现问题。 如果它的十进制数字和数字在七位数之后总是不同,它的行为方式相同。

是正常行为吗?怎么避免呢?

0 个答案:

没有答案