当前位置:网站首页>BigDecimal常用API
BigDecimal常用API
2022-07-27 22:43:00 【大梦_几千秋】
BigDecimal常用API
BigDecimal 在日常开发中比较常用,一些涉及金额的计算及为了确保精度计算都会使用,下面是一些常用的API
1、加法 add
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
a = a.add(b);
System.out.println(a.add(b));//10999
2、减法 subtract
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
a = a.subtract(b);
System.out.println(a);//-9001
3、乘法 multiply
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
BigDecimal c = a.multiply(b);
System.out.println("a*b=" + c);
4、除法 divide
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
c = a.divide(b);
System.out.println("a/b=" + c);
5、求余 divideAndRemainder
divideAndRemainder方法会返回一个长度为2的BigDecimal数组,第一个为商,第二个为余数
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
BigDecimal[] c = a.divideAndRemainder(b);
System.out.println("a/b=" + c[0] + "余数" + c[1]);
6、比较大小 compareTo
BigDecimal可以通过compareTo方法来进行比较。
返回的结果是int类型,-1表示小于,0是等于,1是大于。
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
if (a.compareTo(b) > 0) {
System.out.println("a大于b");
} else if (a.compareTo(b) == 0) {
System.out.println("a等于b");
} else {
System.out.println("a小于b");
}
7、处理小数
下面是取舍模式
- ROUND_UP : 对于正数来说是舍弃小数后,加一,对于负数来说,舍弃小数后减一。例如:100.4,取整数为101,-100.5,取整数为-101
- ROUND_DOWN : 直接舍弃小数或者说精确位后的小数
- ROUND_CEILING : 如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作 (取附近较大的整数)。
- ROUND_FLOOR : 如果 BigDecimal 是正的,则做 ROUND_DOWN 操作;如果为负,则做 ROUND_UP 操作 (取附近较小的整数)。
- ROUND_HALF_UP : 四舍五入,0.5向上取整 100.5 -> 101
- ROUND_HALF_DOWN : 四舍五入,0.5向下取整 100.5 -> 100
- ROUND_UNNECESSARY : 如果存在小数位,就抛ArithmeticException 异常。
单独设置
BigDecimal a = new BigDecimal("998.5");
BigDecimal up = a.setScale(0, RoundingMode.UP);
System.out.println( "up ======= " + up);
BigDecimal down = a.setScale(0, RoundingMode.DOWN);
System.out.println( "down ======= " + down);
//取最近的较大整数
BigDecimal ceiling = a.setScale(0, RoundingMode.CEILING);
System.out.println( "ceiling ======= " + ceiling);
//取最近的较小整数
BigDecimal floor = a.setScale(0, RoundingMode.FLOOR);
System.out.println( "floor ======= " + floor);
//四舍五入,0.5向上取整
BigDecimal halfUp = a.setScale(0, RoundingMode.HALF_UP);
System.out.println( "halfUp ======= " + halfUp);
//四舍五入,0.5向下取整
BigDecimal halfDown = a.setScale(0, RoundingMode.HALF_DOWN);
System.out.println( "halfDown ======= " + halfDown);
除法运用
//结果保留两位小数
BigDecimal divide = a.divide(b, 2, RoundingMode.UP);
System.out.println(divide);
边栏推荐
- 接口测试实战项目02:读懂接口测试文档,上手操练
- Multithreading and multithreaded programming
- Oracle错误: ORA-01722 无效数字
- C language programming | explanation and Simulation of offsetof macro
- Redis-哨兵模式
- Network device hard core technology insider firewall and security gateway (VII) virtualization artifact (Part 1)
- "C language" deep entry rounding & four functions
- Focus on demand flow rather than idle people
- 论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
- Recommended system - offline recall: u2tag2i, ICF
猜你喜欢

分支和循环语句题目练习

"C language" deep entry rounding & four functions

Recommend a Hongmeng instant messaging software "fruit chat", which is a bit awesome!!

芯片行业常用英文术语最详细总结(图文快速掌握)

DC motor winding parameters

安全检测风险
![论文赏析[ICLR18]联合句法和词汇学习的神经语言模型](/img/1c/5b9726b16f67dfc2016a0c2035baae.png)
论文赏析[ICLR18]联合句法和词汇学习的神经语言模型

The most detailed summary of common English terms in the chip industry (quick grasp of graphics and text)

Storage of deep planing data in memory

One year anniversary of creation, Chongba young Lang
随机推荐
Retinanet网络结构详解
论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
Valued at $36billion! SpaceX, which is about to launch its first manned launch, raised $346million
Recommendation system model: wide & deep model
Self use drawing bed building tutorial
Jerry's prompt sound processing when switching devices [chapter]
uniapp显示富文本效果demo(整理)
《KMP复习 + AC自动机》前传
Oracle error: ora-01722 invalid number
I/O设备的基本概念及分类
Network equipment hard core technology insider firewall and security gateway chapter (VI) security double repair under the law
Array related knowledge
Function related knowledge
Multithreading & high concurrency (the latest in the whole network: interview questions + map + Notes) the interviewer is calm
自用图床搭建教程
【STM32】看门狗模块
Jerry Zhi has problems in real-time adjustment of sound change effect in magic sound mode [chapter]
推荐系统-离线召回:u2tag2i、icf
canvas模拟输入框输入
Ink wheel salon | Li Wenjie, Peking University: a graph database system for knowledge atlas application gstore