Android:float - 摆脱尾随零

时间:2012-04-16 20:04:39

标签: android

我在互联网上做了很多搜索,但无法获得令人满意的解决方案。 我做的最好的是:

String b = new BigDecimal(floatNumber.stripTrailingZeros().toPlainString();

但它有一些令人讨厌的错误,例如如果数字是1.6我得到1.600000744(或类似)。

感谢

2 个答案:

答案 0 :(得分:2)

你所看到的确实不是一个错误,它只是使用精度有限的浮点数的结果。它无法准确表示1.6。

如果您希望打印件在某个点之后切断数字,您可以使用前面提到的DecimalFormat来完成:

String result = new DecimalFormat("#.##").format(floatNumber).toString()

这将打印两个小数位,在要删除小数后添加任意数量的#。但是你所看到的在技术上是floatNumber的正确值,即使你不想那么精确。

答案 1 :(得分:1)

试试这个,

DecimalFormat twoDecForm = new DecimalFormat("#.##");

String b = twoDecForm.format(Double.parseDouble(Float.toString(floatNumber)));