Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0

 BigDecimal num = new BigDecimal("100.000");BigDecimal numNoEndZero = num.stripTrailingZeros();  //numNoEndZero  :1E+2System.out.println(numNoEndZero.toString());

按上面的方法输出结果,会显示科学计数法,所以需要处理一下,解决方法:

 String numNoEndZeroStr = new BigDecimal("100.000").stripTrailingZeros().toPlainString();   //numNoEndZeroStr  :100System.out.println(numNoEndZeroStr);

通过该方法处理BigDecimal类型数据后面的0的方法实现:

/*** @Title: clearNoUseZeroForBigDecimal* @Description: 去掉BigDecimal尾部多余的0,通过stripTrailingZeros().toPlainString()实现* @param num* @return BigDecimal*/public static BigDecimal clearNoUseZeroForBigDecimal(BigDecimal num) {BigDecimal returnNum = null;String numStr = num.stripTrailingZeros().toPlainString();if (numStr.indexOf(".") == -1) {// 如果num 不含有小数点,使用stripTrailingZeros()处理时,变成了科学计数法returnNum = new BigDecimal(numStr);} else {if (num.compareTo(BigDecimal.ZERO) == 0) {returnNum = BigDecimal.ZERO;} else {returnNum = num.stripTrailingZeros();}}return returnNum;}

不通过该方法处理BigDecimal类型数据实现

    /*** @Title: removeAmtLastZero* @Description: 金额处理,去掉BigDecimal尾部多余的0* @param num* @return BigDecimal*/public static BigDecimal removeAmtLastZero(BigDecimal num) {String strNum = num.toString();if (strNum.indexOf('.') != -1) {String[] arr = strNum.split("\\.");String strDecimals = arr[1];List<String> list = new ArrayList<String>();boolean isCanAdd = false;for (int i = strDecimals.length() - 1; i > -1; i--) {String ss = String.valueOf(strDecimals.charAt(i));if (!ss.equals("0")) {isCanAdd = true;// 从最后的字符开始算起,遇到第一个不是0的字符开始都是需要保留的字符
                }if (!ss.equals("0") || isCanAdd) {list.add(ss);}}StringBuffer strZero = new StringBuffer();for (int i = list.size() - 1; i > -1; i--) {strZero.append(list.get(i));}strNum = String.format("%s.%s", arr[0], strZero.toString());}return new BigDecimal(strNum);}

BigDecimal去除末尾多余的0相关推荐

  1. java向上取整去掉末尾的0_BigDecimal去除末尾多余的0

    Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("100.000"); Big ...

  2. BigDecimal实现末尾去掉无用0

    BigDecimal 的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("101.200"); ...

  3. js取整,保留小数位数、四舍五入、科学记数法及去掉数字末尾多余的0

    1.向下取整 var num1 = 12.10345; var num2 =12.9801; var newnum1=Math.floor(num1)     //结果 12 var newnum2= ...

  4. 去除小数点后的.或多余的0(多个方法参考)

    去除小数点后面多余的0,这个小需求大家平时肯定也会遇到,总结了以下两种方法:(推荐方法二) 一.方法一(通过正则匹配去除) /*** 正则去除.或多余的0** @param num 需要去除的参数*/ ...

  5. golang float转string后去除末尾的0

    go语言中,float转成string后,末尾会有多余的0,例如1.20000.显示效果不友好,可以使用以下方法去除末尾的0: floatValue := 123.222 result := strc ...

  6. Hutool 数字工具-NumberUtil使用(加减乘除,保留小数,格式化数字,是否为数字,随机数,整数列表,阶乘,平方根,最大公约数和最小公倍数,进制转换,比较大小,去除多余的0)

    数字工具针对数学运算做工具性封装. 1 加减乘除 四种运算都会将double转为BigDecimal后计算,解决float和double类型无法进行精确计算的问题.这些方法常用于商业计算. //针对数 ...

  7. android 计算器显示不全,Android5.0 计算器计算结果不准确和结果末尾的多余的‘0’没有省略的解决方法...

    Android5.0 计算器计算结果不准确和结果末尾的多余的'0'没有省略 一.问题的描述: [测试步骤] 1.进入计算器 2.输入 100-99.9 3.查看计算结果 [测试结果] 1.结果为: 0 ...

  8. MySQL去除数据库中小数点后多余的0

    有关金额的字段,数据库中存储的是decimal(18,4),所以存储的数据小数点后会有一些"多余的"0,页面展示中又不想显示这些"多余的"0,故用mysql的函 ...

  9. Java——去掉小数点后面多余的0

    当小数点后位数过多,多余的0没有实际意义,根据业务需求需要去掉多余的0.后端存储浮点型数据一般会用到Bigdecimal 类型,可以调用相关方法去掉小数后多余0,然后转为string. 例如: pub ...

最新文章

  1. 反汇编算法介绍和应用——线性扫描算法分析
  2. python教学上机实验报告怎么写_Python基础(下)
  3. 怎样做网络推广浅析网站被K之后,优化人员们要注意的方面是哪些?
  4. 如何让神经网络把熊猫识别为秃鹫
  5. Windbg/KD驱动调试点滴–将平时调试的一些小方法共享给大家 --------- 转
  6. 表的插入、更新、删除、合并操作_9_插入默认值
  7. 一般python项目的结构
  8. 2021年广东副高考试成绩查询,广东省中山市2021年高级会计师考试成绩可以查询了吗?...
  9. jxl.read.biff.BiffException: Unable to recognize OLE stream解决方法
  10. Kubernetes 小白学习笔记(27)--kubernetes的运维-Trouble Shooting方法
  11. HBase API 创建表
  12. 基于用户的协同过滤推荐算法(整合)
  13. 黑马 Docker 笔记
  14. Windows7保护眼睛颜色设置方法
  15. 2019属猪的男孩起名
  16. JVM-G1垃圾回收器:G1回收流程(Rset、CSet、SATB)
  17. 单片机拟真电路图软件_单片机电流检测电路图大全(四款模拟电路设计原理图详解)...
  18. 计算机管理找不到新安装的系统,我的电脑开机显示找不到启动设备,请在硬盘上安装操作系统怎么办?开...
  19. 2017-03-27Oracle故障gc buffer busy acquire导致数据库不可用
  20. 【北亚数据恢复】误操作分区损坏导致SqlServer数据库数据丢失的数据恢复案例

热门文章

  1. leetcode算法题--螺旋矩阵
  2. OpenStack Neutron浅析(四)
  3. python可变参数_Python 的四种共享传参详解
  4. 第8集析构函数中抛出的异常
  5. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
  6. git 常用命令整理
  7. 恩布开源安卓手机IM,EntboostIM发布1.5.2版本
  8. 【转】IOS中Json解析的四种方法
  9. 联不上网 Unable to initialize Windows Sockets interface. General failure.
  10. MAC下载Linux Centos镜像文件