BigDecimal工作实践
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工作实践相关推荐
- 工作实践之 try-with-resource 资源关闭
工作实践之 资源关闭 try-with-resource 注"JDK7及其之后的资源关闭方式 注意:下面都是文件创建来举例子 *** 资源关闭优化前与优化后代码量对比*/ public cl ...
- Kubernetes 工作实践内容总结-收藏版
Kubernetes 工作实践内容总结-收藏 k8s 命令基础 Kubectl 自动补全 常用使用命令 查看kube-system ns中所有pod 查看所有node 查看node的资源使用情况 Ku ...
- 本地事务和分布式事务工作实践
一:从事务的历史说起 知已知彼,百战不败.想了解事务,我们从事务的历史说起. 在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一 ...
- 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践
12 月 9 日,TGO 鲲鹏会武汉分会成功组织了第一次小组活动.在此次小组活动中,Tower 联合创始人 & TGO 鲲鹏会武汉分会会员徐峥带来了<Tower 团队 72 个月远程协作 ...
- 社会兼职工作实践报告
实践单位:广州市再创汇科技有限公司 广州市超志科技有限公司 2011年10月1号,我找到了大学中的第一份社会兼职-----校园代理.我所在的是广州市再创汇科技有限公司,任务是代理销售电脑和手机,并可 ...
- 中南大学python考试_中南大学蔡宇轩:国奖得主学习工作实践三不误,这是学霸的青春...
中南大学蔡宇轩 文学与新闻传播学院数版1702班 所获荣誉 2017-2018 NITORI国际奖学金 2017-2019 连续两年获得中南大学优秀学生 2017-2019 连续两年获得学年一等奖学 ...
- 经过时间考验的成功测试工作实践
内容 Testing in software development is changing incredibly quickly. Test effort varies across project ...
- 从工作实践中积累Linux常用脚本(一)
写在前面: 最近工作几乎满负荷,业余时间思考和阅读非专业书籍的时间很少,有空的话,也是在加强本专业的知识. 在工作范围内,用到比较多的是shell相关的工具,怕时间久了就忘记了,那索性就记下来吧. 俗 ...
- 前端 vue 在可视化大屏领域的工作实践
导读:最近入职了一家互联网公司,主要是做物联网及互联网解决方案方向,我上来就接手了这个项目,是一个可视化管理地图,主要用于某国企物业的安全预警的职能,说来也比较倒霉,刚来这公司,公司做这个项目的前端和 ...
最新文章
- php地址转换成经纬度,百度地图 获取地址转换为经纬度
- 《阿里云互联网多媒体存储解决方案蓝皮书》震撼上线!
- 需求分析——调研需求时如何调查系统相关者?
- idea中使用逆向工程----三部曲
- ftk学习记(image显示篇)
- 直线检测原理matlab,Hough变换 直线检测原理及其Matlab实现
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 学习webpack系列之二 ---- (管理静态资源)
- ectouch——wap端商城の数据表字典
- android 反色 java_安卓实现图片反色,改色-ColorMatrixColorFilter
- 阿里巴巴python开发面试_在阿里巴巴面试,是什么样的体验?
- java 合并pdf_用iText分割和合并pdf文件
- 计算机世界:“狗日的”腾讯 搅局者还是终结者
- 今日金融词汇---前复权,是什么?
- Redis分布式锁----悲观锁实现,以秒杀系统为例 - 林炳文Evankaka的专栏 - CSDN博客
- emv交易流程介绍_EMV交易指标简介
- Android 百度地图应用定位经纬度返回4.9E-324有关问题
- 通达信资金净流入公式_主力净流入(副){51.63%/5655}
- 高效率整理电脑上的文件:清理电脑文件方案需要 -- 合理的方法 + 合适的工具如Python查找重复文件
- 读《小强升职记》总结