BigDecimal常用总结, 以备后用

public class BigDecimalSample {private static final int SCALE_VALUE = 3;public static void main(String[] args) {BigDecimal data = new BigDecimal("10000.00");// 1.----------------------------输出为字符串-------------------------------// 输出为字符串: 10000.00System.out.println(data.toString());// 去掉小数位尾部零 然后输出为String 此时输出是科学计数法的格式: 1E+4// 能被10整除的整数转换为科学计数法输出System.out.println(data.stripTrailingZeros().toString());// 去掉小数位尾部零 然后输出为PlainString 此时输出是常规的字符串: 10000// toPlainString会禁止转换为科学计数法(常用!!!)System.out.println(data.stripTrailingZeros().toPlainString());// 2.----------------------------精度scale-------------------------------// 精度为2System.out.println(data.scale());// 精度为-4(科学计数法1E+4)System.out.println(data.stripTrailingZeros().scale());// 精度为-3System.out.println(new BigDecimal("2000").stripTrailingZeros().scale());// 精度为-3System.out.println(new BigDecimal("-2000").stripTrailingZeros().scale());// 精度为0System.out.println(new BigDecimal("123").stripTrailingZeros().scale());// 精度为0System.out.println(new BigDecimal("1233").stripTrailingZeros().scale());// 精度为0System.out.println(new BigDecimal("-1233").stripTrailingZeros().scale());// 根据不同的精度进行不同的处理// 打印结果: ""System.out.println(scaleHandler(null));// 打印结果: 2000.6789System.out.println(scaleHandler(new BigDecimal("2000.678900")));// 打印结果: 2000.678System.out.println(scaleHandler(new BigDecimal("2000.678")));// 打印结果: 2000.670System.out.println(scaleHandler(new BigDecimal("2000.67")));// 精度的四舍五入 输出2000.68System.out.println(new BigDecimal("2000.678900").setScale(2, RoundingMode.HALF_UP));}public static String scaleHandler(BigDecimal value) {if (Objects.isNull(value)) {return StringUtils.EMPTY;}BigDecimal formatValue = value.stripTrailingZeros();// 具体逻辑依据业务来定if (formatValue.scale() > SCALE_VALUE) {return formatValue.toPlainString();} else {// 整数的精度均小于或等于零// 不足的小数位补零return formatValue.setScale(SCALE_VALUE).toPlainString();}}
}

BigDecimal工作实践相关推荐

  1. 工作实践之 try-with-resource 资源关闭

    工作实践之 资源关闭 try-with-resource 注"JDK7及其之后的资源关闭方式 注意:下面都是文件创建来举例子 *** 资源关闭优化前与优化后代码量对比*/ public cl ...

  2. Kubernetes 工作实践内容总结-收藏版

    Kubernetes 工作实践内容总结-收藏 k8s 命令基础 Kubectl 自动补全 常用使用命令 查看kube-system ns中所有pod 查看所有node 查看node的资源使用情况 Ku ...

  3. 本地事务和分布式事务工作实践

    一:从事务的历史说起 知已知彼,百战不败.想了解事务,我们从事务的历史说起. 在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一 ...

  4. 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践

    12 月 9 日,TGO 鲲鹏会武汉分会成功组织了第一次小组活动.在此次小组活动中,Tower 联合创始人 & TGO 鲲鹏会武汉分会会员徐峥带来了<Tower 团队 72 个月远程协作 ...

  5. 社会兼职工作实践报告

    实践单位:广州市再创汇科技有限公司  广州市超志科技有限公司 2011年10月1号,我找到了大学中的第一份社会兼职-----校园代理.我所在的是广州市再创汇科技有限公司,任务是代理销售电脑和手机,并可 ...

  6. 中南大学python考试_中南大学蔡宇轩:国奖得主学习工作实践三不误,这是学霸的青春...

    中南大学蔡宇轩 文学与新闻传播学院数版1702班 所获荣誉 2017-2018  NITORI国际奖学金 2017-2019 连续两年获得中南大学优秀学生 2017-2019 连续两年获得学年一等奖学 ...

  7. 经过时间考验的成功测试工作实践

    内容 Testing in software development is changing incredibly quickly. Test effort varies across project ...

  8. 从工作实践中积累Linux常用脚本(一)

    写在前面: 最近工作几乎满负荷,业余时间思考和阅读非专业书籍的时间很少,有空的话,也是在加强本专业的知识. 在工作范围内,用到比较多的是shell相关的工具,怕时间久了就忘记了,那索性就记下来吧. 俗 ...

  9. 前端 vue 在可视化大屏领域的工作实践

    导读:最近入职了一家互联网公司,主要是做物联网及互联网解决方案方向,我上来就接手了这个项目,是一个可视化管理地图,主要用于某国企物业的安全预警的职能,说来也比较倒霉,刚来这公司,公司做这个项目的前端和 ...

最新文章

  1. php地址转换成经纬度,百度地图 获取地址转换为经纬度
  2. 《阿里云互联网多媒体存储解决方案蓝皮书》震撼上线!
  3. 需求分析——调研需求时如何调查系统相关者?
  4. idea中使用逆向工程----三部曲
  5. ftk学习记(image显示篇)
  6. 直线检测原理matlab,Hough变换 直线检测原理及其Matlab实现
  7. 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
  8. 学习webpack系列之二 ---- (管理静态资源)
  9. ectouch——wap端商城の数据表字典
  10. android 反色 java_安卓实现图片反色,改色-ColorMatrixColorFilter
  11. 阿里巴巴python开发面试_在阿里巴巴面试,是什么样的体验?
  12. java 合并pdf_用iText分割和合并pdf文件
  13. 计算机世界:“狗日的”腾讯 搅局者还是终结者
  14. 今日金融词汇---前复权,是什么?
  15. Redis分布式锁----悲观锁实现,以秒杀系统为例 - 林炳文Evankaka的专栏 - CSDN博客
  16. emv交易流程介绍_EMV交易指标简介
  17. Android 百度地图应用定位经纬度返回4.9E-324有关问题
  18. 通达信资金净流入公式_主力净流入(副){51.63%/5655}
  19. 高效率整理电脑上的文件:清理电脑文件方案需要 -- 合理的方法 + 合适的工具如Python查找重复文件
  20. 读《小强升职记》总结

热门文章

  1. C语言NULL和0的区别及NULL详解
  2. 公众号文章批量下载,这款刚需软件也盘来了
  3. 思普linux安装教程,思普操作系统下载
  4. 【XBEE手册】API操作
  5. Linux iptable
  6. 仿 iPhone Assistivetouch 自定义view
  7. 搞定上传图片的,速度不错
  8. 李宏毅深度学习_Task02
  9. lol1月8日服务器维护,lol1月8日更新内容 停机维护到几点
  10. 【Vue】播放flv格式视频(flv.js视频播放器)