背景:

近期做开发时遇到的一个数字格式转换问题,mysql里金额,数字字段,类型都是decimal(16,8),返给前端格式:
1:去掉小数尾巴多余的0,如12.345000->12.345
2:至少保留2位小数,如12.345->12.345,12,34->12.34,12.3->12.30,12->12.00
网上查找方法,发现多是部分格式处理方案,无法解决问题,故自写全,记录于此,它日或再有用。

    /*** @Description 数字处理(小数后多余的0去掉,小数位至少两位,不足2位0来补齐)* @Author Luffy* @Date 2021/01/18*/public static String delEndZeroAndKeepLeast2Point(String formatNumber) {String finalNumber = "";if(UtilValidate.isNotEmpty(formatNumber)) {finalNumber = new BigDecimal(formatNumber).stripTrailingZeros().toPlainString();//如果小数位数<=2位,则保留2位(没2位则0补齐)  13.13526 8-2-1    13.1 4-2-1if(finalNumber.length()-finalNumber.indexOf(".")<=2) {finalNumber = new DecimalFormat("#.00").format(Double.valueOf(finalNumber));}//如果没小数点if(finalNumber.indexOf(".")==-1) {finalNumber = new BigDecimal(finalNumber).setScale(2).toString();}}return finalNumber;}

附记常见数字保留2位的处理方式:

方式一:
四舍五入
double   f   =   111231.5585;
BigDecimal   b   =   new   BigDecimal(f);
double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
保留两位小数
---------------------------------------------------------------  方式二:
java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00");
df.format("欲格式化的数字");例:new java.text.DecimalFormat("#.00").format(3.1415926)
#.00 表示两位小数 #.0000四位小数 以此类推...方式三:
double d = 3.1415926;
String result = String .format("%.2f");
%.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型方式四:
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits)
df.format("欲格式化的数字");
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的

数字去除尾巴多余的零,且至少保留两位小数相关推荐

  1. 输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;

    场景: –要求1:输入框只能输入数字,可以使正数.负数.0,小数点最多保留两位. –要求2:不需要自动补齐小数点,也不需要自动四舍五入. element-ui的数字输入框el-input-number ...

  2. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...

  3. php数字两位小数_PHP保留两位小数的几种方法

    代码如下所示: $num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 ...

  4. java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。

    文/阿敏其人 本文出自阿敏其人博客,转载请注明出处和连接. 整数前的0去掉. 小数固定保留两位小数 兼容负数 数字检测 适配金融大数额 核心类 public class BigDecimalStrin ...

  5. js数字最多保留两位小数_8085微处理器中最多两个8位数字

    js数字最多保留两位小数 Problem statement: 问题陈述: To find maximum of two 8bit numberusing 8085 microprocessor. 使 ...

  6. ECharts提示框数字保留两位小数

    要求实现效果:鼠标移动到柱状图上,显示数字保留两位小数, 设置提示框属性tooltip tooltip: {                 formatter:function(datas) {   ...

  7. 创建类MyMath,计算圆的周长、面积和球的表面积、体积,结果保留两位小数。若输入的是非数字,则输出:请输入数字!提示:要引入math包。

    """ 创建类MyMath,计算圆的周长.面积和球的表面积.体积,结果保留两位小数.若输入的是非数字,则输出:请输入数字!提示:要引入math包. 结果如下,请输入半径: ...

  8. php数字两位小数_PHP 数字价格格式化,保留两位小数

    $num=3.545; $precision=2; 1.php保留两位小数并且四舍五入,代码如下: round($num, $precision) 2.php保留两位小数并且不四舍五入,代码如下 sp ...

  9. 以英文逗号隔开的数字(每个数字可保留两位小数)字符串的正则表达式写法

    以英文逗号隔开的数字字符串的正则表达式写法 ^\d+(\,\d+)*$ 以英文逗号隔开的数字(每个数字可保留两位小数)字符串的正则表达式写法 ^\d+(\.\d{2})?(\,\d+(\.\d{2}) ...

最新文章

  1. asp.net使用for循环实现Datalist的分列显示功能
  2. 为什么大家看到不错的文章更愿意收藏而不是点赞?
  3. R语言paste函数
  4. hazelcast集群配置_使用HazelCast进行Hibernate缓存:基本配置
  5. 安卓布局中xml文件属性和ID简介
  6. JS--------文件操作基本方法:上传/下载
  7. 思科华为命令没有对比就没有伤害
  8. 牛客多校第八场E Explorer(左开右闭线段树+可撤回并查集)题解
  9. 使用docker实现半自动化代码自动部署与回滚
  10. 神策分析 2.1 重磅上线!报警诊断、多主体分析、渠道追踪等赋能企业数字化经营...
  11. 张首晟谈牛顿的《自然哲学的数学原理》
  12. CodeMeter***大赛战况:百人参赛,无人摘金!
  13. 做到心云社客这三点,你也拥有很多网络赚钱机会
  14. 论“詹姆斯*哈登”到底是不是球队毒瘤
  15. 网站服务器带宽多少合适,服务器选择时带宽选多少合适?
  16. Excel表格中选择性粘贴如何粘贴为数值
  17. 核磁共振测井设备市场现状及未来发展趋势分析
  18. java怎么编写木马_Java也能写木马~(附源码!)
  19. 谷歌又在开发新AI框架!这次瞄准的是:通用人工智能(AGI)
  20. 软件测试经理评说ISTQB认证价值

热门文章

  1. 邮编区号查询 API数据接口
  2. 刚构桥的优缺点_刚构桥特点
  3. erlang实现麻将胡牌以及癞子胡牌算法
  4. SPSS学习笔记(1)
  5. 99元极路由(Hiwifi)入手手记
  6. 【labview教程01】手把手教你安装labview2016
  7. 尔雅项目一计算机基础知识作业,大学计算机基础尔雅答案修订无错版汇编.doc...
  8. 成教计算机科学与技术怎么样,华中农业大学成考计算机科学与技术专业就业前景怎么样?...
  9. 瑞士巴塞尔大学授予以太坊联合创始人Vitalik Buterin荣誉博士学位
  10. 手机4g网速测试用什么软件,4G LTE 网速测试平台简介_手机生活应用-中关村在线...