BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数

一、加减乘除

BigDecimal num1 = new BigDecimal(2);
BigDecimal num2 = new BigDecimal(6);
BigDecimal num3 = null;-- 加 2+6
num3 =  num1.add(num2);
-- 结果:8-- 减 6-2
num3 = num2.subtract(num1);
-- 结果:4-- 乘 2*6
num3 = num1.multiply(num2);
-- 结果:12-- 除 6/2
num3 = num2.divide(num1);
-- 结果:3

二、比较大小

这里比较的时候不能直接 num4.compareTo(new BigDecimal(1)) == 1 或者 -1,只能num4.compareTo(new BigDecimal(1)) > 0或 < 0 或 “= = 0”,不能直接判断1或-1

BigDecimal num4 = new BigDecimal(0);
BigDecimal num5 = new BigDecimal(1);
BigDecimal num6 = new BigDecimal(2);-- 小于 0<1
int i = num4.compareTo(new BigDecimal(1)); -- 结果:-1-- 等于 1=1
i = num5.compareTo(new BigDecimal(1))  -- 结果:0-- 大于 2>1
i = num6.compareTo(new BigDecimal(1))  -- 结果:1-- 常用一步到位进行判断:
if(num4.compareTo(new BigDecimal(1)) > 0){return true;
}

三、取最大最小值

BigDecimal num7 = new BigDecimal(11);
BigDecimal num8 = new BigDecimal(22);-- 比较两个数的大小,返回小的数
System.out.println(num7.min(num8));
-- 结果:11-- 比较两个数的大小,返回大的数
System.out.println(num7.max(num8));
-- 结果:22

四、保留小数

-- 注意这里new Bigdecimal不能直接使用float和double类型BigDecimal num9 = new BigDecimal("3.14559");
BigDecimal num10 = null;-- 表示直接去掉多余的位数,不进行四舍五入
num10 = num9.setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(num10);
-- 结果:3.14-- 表示进位处理,即四舍五入
num10 = num9.setScale(2, BigDecimal.ROUND_UP);
System.out.println(num10);
-- 结果:3.15

五、遇到的坑,有小数位的精度问题

new 新的对象的时候整数可以直接这样:new BigDecimal(10);但是带小数的会有精度损失,比如:new BigDecimal(10.13456),所以带小数的要使用字符串进行处理:new BigDecimal(“10.13456”)。

六、转String

https://www.cnblogs.com/heqiyoujing/p/10409965.html

public static void main(String[] args) {// 浮点数的打印System.out.println(new BigDecimal("10000000000").toString());// 普通的数字字符串System.out.println(new BigDecimal("100.000").toString());// 去除末尾多余的0System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());// 避免输出科学计数法System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());}

运行结果:

10000000000
100.000
1E+2
100

BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数位 |转String相关推荐

  1. hive sql 向上取整、向下取整、保留小数位的函数

    hive sql 向上取整.向下取整.保留小数位的函数 向上取整函数:ceiling() 示例:select ceiling(10.1) 结果:11 向下取整函数:floor() 示例:select ...

  2. delphi 对金额double类型向上取整,保留小数位

    delphi 对金额double类型向上取整,保留小数位 //新保留小数位,只要后面有多余的数据,则进位 function NewRoundTo(value: Double; ws: Integer) ...

  3. Java中BigDecimal类型的加减乘除及大小比对

    Java中BigDecimal类型的加减乘除及大小比对 前言 BigDecimal解释 创建BigDecimal类型 加减乘除计算 结果分析 结论 除法的补充 两个BigDecimal的比对 前言 在 ...

  4. JS 中的Math方法向上取整、向下取整、保留整数、绝对值、取最大值、最小值等

    JS 中的Math方法向上取整.向下取整.保留整数.绝对值.取最大值.最小值等 1.只保留整数部分(丢弃小数部分) parseInt(5.1234);// 5 2.向下取整(<= 该数值的最大整 ...

  5. bigdecimal除法不四舍五入_BigDecimal四舍五入与保留位

    1.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确 ...

  6. BigDecimal加减乘除,以及四舍五入方法

    BigDecimal加减乘除,以及四舍五入 代码实例: 四舍五入模式 代码实例: BigDecimal numO= new BigDecimal("10"); BigDecimal ...

  7. BigDecimal加减乘(cheng)除BigDecimal[]数组比较大小

    文章目录 前言 一.Bigdecimal是什么? 二.使用步骤 总结 前言 提示:BigDecimal 在使用的过程中尽量采用String类型的参数进行转换尽量避免不使用字符串的数字对小数点进行数据格 ...

  8. 全网最全的BigDecimal的newScale(保留小数位)和roundingMode(舍入模式),详细介绍roundingMode(重点)

    一般我们要对一个BigDecimal的数字进行保留小数位和设置舍入模式的时候,都是这样使用的: 对于加.减.乘得到的数字,直接使用BigDecimal对象.setScale,就像这样: 或者除法,在做 ...

  9. js数组取最大值最小值,以及小数取整

    例子: var mcgs = [6,56,5,65,6,9,4.5,2,12,12,1,50.6,2];//数组2 var sin = [48,4,8,6,8,6,1,1,3,1,3,68,646,4 ...

  10. JS 两数相除取百分比%并保留两位小数

    代码如下: //两数相除取百分比%并保留两位小数 function Percentage(number1, number2) { // 小数点后两位百分比return (Math.round(numb ...

最新文章

  1. MySQL必知必会读书笔记
  2. 我爱Java系列---【mysql基础约束】
  3. Windows安装配置tidevice
  4. GitNote 基于 Git 的跨平台笔记软件正式发布
  5. easyui源码翻译1.32--ValidateBox(验证框)
  6. 移植uboot之修改代码支持NorFlash记录
  7. Vue CLI 3 可以使用 TypeScript 生成新工程
  8. 大数据之-Hadoop3.x_MapReduce_自定义outputformat案例完善执行---大数据之hadoop3.x工作笔记0123
  9. 牛客网——复杂字符串排序
  10. MAC 升级 node.js 的快捷方法
  11. IDEA最全手把手安装教程 安装+字体大小类型,主题颜色设置+常用快捷键设置优化|详细
  12. android 不限速迅雷,迅雷不限速分享(手机+PC端打包) – 长期更新
  13. 阿里巴巴短信验证码使用
  14. 大数据测试是什么意思?测试分析方法有哪些?
  15. win10安装docker导致virtualbox无法启动问题解决
  16. 传输接口的对比 USB、Thunderbolt、HDMI、DP、type-c
  17. 测试测量(2)-继电器基础介绍
  18. Adobe, 微软论剑 Flash, Silverlight 与 HTML5
  19. 零基础学习SQL第一节
  20. python爬取新闻,制作词云图

热门文章

  1. 如何让谷歌取消自动重定向
  2. Windows Mobile之开机自启动
  3. Node.js 教程第十四篇——Socket.io
  4. 《Kotlin项目实战开发》第1章 Kotlin是什么 1
  5. Node学习记录: mongodb
  6. 【创建型】Prototype模式
  7. 为什么你的MySQL跑得很慢?
  8. iOS开发UIScrollView使用详解
  9. 35. systemtap
  10. 20. Feature分支