版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013055213/article/details/78142886
最近在做平台数据的展示,要求对数字保留两位小数,并且四舍五入.虽然安卓有一个类可以做一些小数的处理,但是由于机器码的正反补,使得小数的四舍五入并不想我们所认为的那样,所以想办法自己写一个可以四舍五入的.
这个哥们总结的还挺到位的
首先我通过小数点将小数进行分割,之后我将分割之后的小数+0.005之后使用直接去掉多于小数的方法,这样就可以做到四舍五入了.借鉴了一下小数取整的技巧,果然有效.下面直接看代码吧!
if (money.contains(".")) {
lastTwo = money.substring(money.lastIndexOf("."));
content = money.substring(0, money.lastIndexOf("."));
}
if (lastTwo != null) {
int towLength = lastTwo.length();
if (towLength < 3) {
int temp = 3 - towLength;
for (int i = 0; i < temp; i++) {
lastTwo += "0";
}
} else {
//小数点后保留两位,四舍五入
try {
double v = Double.parseDouble(lastTwo);
BigDecimal b = new BigDecimal(v + 0.005).setScale(2, BigDecimal.ROUND_DOWN);
lastTwo = b.toString();
lastTwo = lastTwo.substring(lastTwo.lastIndexOf("."));
} catch (Exception e) {
Log.e("MoneyFormatUtil", "格式化异常");
}
// lastTwo = lastTwo.substring(0, 3);
}
}