数值处理,自动去零及自动根据精度补零

这个版本又有奇葩需求

  1. 有些数值必须把末尾的0都取消
  2. 有些数值必须保留2位小数,不够得用0凑…
末尾去零原本准备写个工具类的,后来居然发现BigDecimal有对应的方法,果断不写了.
String formatMoney = new BigDecimal(flowPackage.money).stripTrailingZeros();

发现有效果,但是10变成了1E+1,20变成了 2E+1这种科学计数法了…

输出后面加个toString()…还是没什么效果

最后看API发现有2个方法…

toEngineeringString()
toPlainString()

第一个是将数值转换成科学计数法,第二个就是转换成10进制的数值.

String formatMoney = new BigDecimal(flowPackage.money).stripTrailingZeros().toPlainString();

这样就好了….

还有个需求是将不满2位小数的都自动补零…

截小数点,拿数组后半段,判断,补0,唯一注意的就是 “.”需要使用转义符

因为都至少会有一位小数,所以不需要考虑整数的情况

/**
     * 全部保留2位小数点
     */
    private String formatString(String str){
        String[] split = str.split("\\.");
        if (split[1].length()<2){
            split[1] = split[1]+"0";
        }
        return split[0]+"."+split[1];
    }
“.”和“|”都是转义字符,必须得加”\”
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值