网站首页 > java教程 正文
BigDecimal是在Java中java.math包中提供的API类,是用来对超过16位有效数字进行精确运算的,像double只能处理16位有效数字,在商业计算中如果需要精确计算就要用到BigDecimal,还有一种情况就是mysql表中的某个字段类型是Decimal(N,M),对应Java的类型就是BigDecimal,用过逆向工程的都知道,Decimal(N,M)类型的字段映射成Java对象的类型就是BigDecimal,我们经常要对BigDecimal类型进行加减乘除运算,然而,BigDecimal是一个类,不能直接加减乘除,接下来就来看看BigDecimal。
一、构造器
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
二、方法描述
1.add(BigDecimal) 加法运算
public static void main(String[] args) {
BigDecimal a=new BigDecimal("333");
BigDecimal b=new BigDecimal("333");
BigDecimal add = a.add(b);
System.out.println(add);//666
}
2.subtract(BigDecimal) 减法运算
3.multiply(BigDecimal) 乘法运算
public static void main(String[] args) {
BigDecimal a=new BigDecimal(3.33);
BigDecimal b=new BigDecimal(3.33);
double value = a.multiply(b).doubleValue();//浮点类型的运算如果位数过多可以转为BigDecimal来运算
System.out.println(value);//11.0889
}
4.divide(BigDecimal) 除法运算
5.toString() 转换为字符串
6.doubleValue() 转换为双精度类型(乘法运算已经演示)
7.floatValue() 转换为单精度类型。
8.longValue() 转换为长整数类型。
9.intValue() 转换为整数类型。
10.compareTo BigDecimal比较
public static void main(String[] args) {
BigDecimal a=new BigDecimal(1);
BigDecimal b=new BigDecimal(2);
System.out.println(a.compareTo(b));//-1
System.out.println(b.compareTo(b));//0
System.out.println(b.compareTo(a));//1
}
由此可见左边比右边小返回-1,相等返回0,左右比右边大返回1
最后感谢各位看官观看本篇文章,如果觉得文章还行的话可以点点关注,我会经常分享,我们共同进步。
猜你喜欢
- 2024-10-18 Java 中的移位运算符(Shift Operator)
- 2024-10-18 「每日分享」把Map中的hash()分析的最透彻的文章
- 2024-10-18 从bitmap到布隆过滤器,再到高并发缓存设计策略
- 2024-10-18 Java基础入门(运算符)(java运算符的含义)
- 2024-10-18 Day03-Java运算(三年级混合运算练习题)
- 2024-10-18 浅谈java中的数学运算(java的数学公式有哪些)
- 2024-10-18 好程序员Java学习路线分享Java中的位移运算
- 2024-10-18 全网分析Map中hash方法最透彻的一篇文章
- 2024-10-18 为什么Java String哈希乘数为31?(java中string是什么数据类型)
- 2024-10-18 排列组合算法真厉害,傻瓜都能学会!
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)