首页 > 编程语言 >Java 中 BigDecimal 类型的变量的使用

Java 中 BigDecimal 类型的变量的使用

时间:2023-06-29 13:11:06浏览次数:42  
标签:Java BigDecimal 10.25 number new anotherNumber 变量

BigDecimal 类的作用:

  Java 的 BigDecimal 类 用于进行高精度的十进制运算,避免了使用浮点数造成的精度丢失问题。

 

BigDecimal 提供了许多方法来执行基本的数学运算,如加减乘除、比较、区域等。

 

BigDecimal 类的常见用法示例:

1、创建 BigDecimal 对象:

BigDecimal number = new BigDecimal("10.25");
BigDecimal anotherNumber = BigDecimal.valueOf(5.75);

2、基本运算

BigDecimal sum = number.add(anotherNumber); // 加法
BigDecimal difference = number.subtract(anotherNumber); // 减法
BigDecimal product = number.multiply(anotherNumber); // 乘法
BigDecimal quotient = number.divide(anotherNumber); // 除法

3、比较

int result = number.compareTo(anotherNumber); // 比较大小,返回-1、0或1
boolean isEqual = number.equals(anotherNumber); // 判断是否相等
boolean isGreaterThan = number.compareTo(anotherNumber) > 0; // 判断是否大于

4、取余

BigDecimal remainder = number.remainder(anotherNumber); // 取余数

5、格式化输出

String formattedNumber = number.setScale(2, RoundingMode.HALF_UP).toString(); // 格式化为两位小数

注意:在进行运算时,必须使用BigDecimal的方法,而不能使用普通的算术操作符(如+、-、*、/),否则可能会导致精度丢失。

 

进阶

6、取整

BigDecimal number = new BigDecimal("10.25");
BigDecimal roundedNumber = number.setScale(0, RoundingMode.HALF_UP); // 将数值四舍五入为整数

7、取绝对值

BigDecimal number = new BigDecimal("-10.25");
BigDecimal absoluteValue = number.abs(); // 返回绝对值

8、求幂

BigDecimal base = new BigDecimal("2");
BigDecimal exponent = new BigDecimal("3");
BigDecimal power = base.pow(exponent.intValue()); // 求幂

9、平方根

BigDecimal number = new BigDecimal("25");
BigDecimal squareRoot = BigDecimalMath.sqrt(number, MathContext.DECIMAL128); // 计算平方根,需要使用BigDecimalMath类

注意:某些方法(如平方根)可能需要使用到第三方库,例如 Apache Commons Math(BigDecimalMath)。

 

10、判断是否小于 0

BigDecimal number = new BigDecimal("-1.25");
number.compareTo(BigDecimal.ZERO) < 0

// 如果 number 小于 0,则判断小于 0
// 如果 number 大于0,则判断大于 0

 

标签:Java,BigDecimal,10.25,number,new,anotherNumber,变量
From: https://www.cnblogs.com/Rover20230226/p/17513958.html

相关文章

  • Java 17 新特性
    如题:基于垃圾回收器的内存分配:Java17引入了垃圾回收器接口,允许开发人员实现自定义的垃圾回收器。这样可以提供更大的灵活性和性能优化的机会。  示例代码:1publicclassMyGarbageCollectorimplementsGarbageCollector{2//实现自定义的垃圾回收逻辑......
  • Java or Python?测试开发工程师如何选择合适的编程语言?
    很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对正确的选择确实要比盲目投入更明智也更高效。目前最常见的情况是纠结选择Jav......
  • docker-compose 部署java微服务项目
    1、准备条件:安装docker,安装docker-compose,docker安装可自行百度,docker-compose安装由于太慢,我这里提供两个版本:win和linux版本的百度网盘版,大家可根据需要自行下载:链接:https://pan.baidu.com/s/10W81TX6cWQqyi92xyeuZQQ提取码:2evg这里一linux系统为例:下载docker-compose-linux-......
  • JavaScript 链表的增删改查
       //节点对象classNode{constructor(data){this.data=data;//存储节点数据this.next=null;//存储下一个节点的引用,默认为null}}//链表对象classLinkedList{constructor(){this.head=null;//链表头节点,默认为null}......
  • java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check t
    问题报错代码org.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cause:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntax......
  • Java 13 新特性
    如题:文本块(TextBlocks):Java13引入了文本块,或称为多行字符串。使用三个双引号(""")可以定义一个文本块,这样可以更方便地编写多行字符串,而无需使用转义字符或连接符。这在编写HTML、JSON、SQL等需要包含大量换行和格式的字符串时非常有用。......
  • Java中获取request对象的几种方法
    1.通过注解获取(很简单,推荐):publicclassHello{@AutowiredHttpServletRequestrequest;//这里可以获取到request} 2.在web.xml中配置一个监听:<listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></liste......
  • Java学习——循环结构
    循环结构while循环do...while循环for循环在Java5中引入了一种主要用于数组的增强型for循环breakcontinue一、while循环while(布尔表达式){ //循环内容只要布尔表达式为true,循环就会一直执行下去我们大多数情况是会让循环停止下来的,我们需要一个让表达式失......
  • Java流程控制——Scanner对象
    Scanner对象java.until.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入,实现计算机与人的交互。基础语法:Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串在读取之前一般需要使用hasNext()和hasNextLine()判断是否还有输......
  • java第二次blog
    1.前言:4~6次pta题目集难度上升,代码量增加,考察了对类的设计以及如何实现类间关系等。难度较大。涉及到了去重排序循环遍历等。还有API接口,JAVA自带的实现类,包装类,成员方法等,涉及的知识面更广更难。 2.设计分析: 7-1菜单计价程序-3:设计点菜计价程序,根据输入的信息,计算......