首页 > 编程语言 >JAVA中BigDecimal详解

JAVA中BigDecimal详解

时间:2023-10-15 17:04:30浏览次数:48  
标签:JAVA BigDecimal -- two DOWN 详解 new ROUND

一、BigDecimal比较大小

JAVA中BigDecimal详解_java

二、加减乘除运算

BigDecimal one = new BigDecimal("0.123");
BigDecimal two = new BigDecimal("1.23");

1、加法:add

//加法运算
BigDecimal three = one.add(two);

2、减法:subtract

//减法运算
BigDecimal four = two.subtract(one);

3、乘法:multiply

//乘法运算(保留两位小数)
BigDecimal five = one.multiply(two).setScale(2,BigDecimal.ROUND_DOWN);

保留小数位:

ROUND_DOWN --> 直接删除多余的小数位 ,(这种方式得到的绝对值不会比原数大)
ROUND_UP --> 在最后一位直接加1
ROUND_CEILING --> 正数时与ROUND_UP一致,负数时与ROUND_DOWN一致
ROUND_FLOOR --> 正数时与Round_DOWN一致,负数时与ROUND_UP一致
ROUND_HALF_UP --> 四舍五入
ROUND_HALF_DOWN --> 五舍六入
ROUND_HALE_EVEN --> 四舍六入五看奇进偶不进(四舍六入五成双)

4、除法:divide

//除法运算(保留两位小数)
BigDecimal six = two.divide(one,2);

三、类型转换

1、String转为BigDecimal、BigDecimal转String

String str = "1.23";
BigDecimal num = new BigDecimal(str);
String numToStr = num.toString();

2、int转BigDecimal、BigDecimal转int

int a = 1;
BigDecimal numTwo = new BigDecimal(a);
int numTwoToInt = numTwo.intValue();

3、Double转BigDecimal、BigDecimal转Double

Double d = 99.96;
BigDecimal numThree = BigDecimal.valueOf(d);
Double numThreeToDouble = numThree.doubleValue();

标签:JAVA,BigDecimal,--,two,DOWN,详解,new,ROUND
From: https://blog.51cto.com/u_16291619/7872641

相关文章

  • MySQL事务隔离级别详解及应用指南
    MySQL作为关系型数据库管理系统,对于多个并发事务之间的隔离和并发控制是必不可少的。在MySQL中,提供了四种事务隔离级别,分别是:读未提交、读已提交、可重复读和串行化。读未提交在该隔离级别下,一个事务可以读取另一个并发事务未提交的数据,可能会出现“脏读”问题,即读到了未经授权的数......
  • 数据结构和算法基础(Java语言实现)pdf电子版柳伟卫2021年
    数据结构和算法基础(Java语言实现)pdf电子版下载作者: 柳伟卫出版年: 2021-11ISBN: 9787301325872下l载连接最新Java领域的算法、数据结构方面的知识书籍。越是基础越是重要!......
  • 2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符
    2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符标识符、关键字和保留字标识符在Java语言中,通过标识符来表示一些元素的名字,比如变量名、类名、方法名和包名等。Java中的标识符要符合下面的规则:标识符必须以字母、下划线(_)、数字或美元($)组成;标识符必须由字母、下......
  • 月薪过二万的Java面试
    (文章目录)......
  • 2023_10_15_DAY_01_JAVA_SE_Java基础知识_上
    2023_10_15_DAY_01_JAVA_SE_Java基础知识什么是Java计算机语言是人与计算机之间的通讯语言,分为机器语言、汇编语言、高级语言。Java是一种高级计算机语言,它是由Sun公司(已被Oracle公司收购)于1995年5月推出。Java语言平台Java语言平台包括3个版本,标准版、企业版、微型版。Jav......
  • Oracle分区表技术详解
    Oracle是如何存储数据的?逻辑存储与物理存储在国企或者一线大厂,一般都会选择使用Oracle数据库,程序通过mybatis等持久层框架访问Oracle数据库,指定表空间,表空间内包含若干张表,表中存有行数据,行数据以行片段的形式存储在数据库块中,①当插入的行太大,无法装入单个块时;②或因为更新的......
  • TCP/IP协议、三次握手、四次挥手详解
    TCP/IP协议模型(TCP协议)传输控制协议是一种面向连接的、可靠的、基于字节流的方式进行有序的无差错的数据传输通讯协议,它负责完成传输层所指定的功能,利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。比如:数据报检测、流量控制、拥塞控......
  • 阿里云邮箱25端口被关闭,改用465端口Java发送邮件
    阿里云出于安全考虑默认关闭25端口,开发的是465端口,我们只讲怎么发送邮件。<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency......
  • JavaWeb-初识Servlet
    目录1.Servlet简介2.Tomcat安装配置3.Servlet项目搭建4.Servlet项目运行内容Servlet简介Servlet是什么JavaServlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使......
  • poi报错org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetExcepti
    场景使用poi时报错org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException报错信息:org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetExceptionatorg.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory......