BigInteger和BigDecimal类

2024-05-10 01:52
文章标签 bigdecimal biginteger

本文主要是介绍BigInteger和BigDecimal类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BigInteger 和 BigDecimal 介绍

应用场景

  • BigInteger适合保存比较大的整型
  • BigDecimal适合保存精度更高的浮点型(小数)

BigInteger 和 BigDecimal 常见方法

  • 1,add 加
  • 2,subtract 减
  • 3,multiply 乘
  • 4,divide 除

BigInteger方法:

public class BigInteger_ {public static void main(String[] args) {//当我们编程中,需要处理很大的整数,long 不够用//可以使用 BigInteger 的类来搞定//报错  long i = 23788888899999999999999999999l; 数字太大BigInteger bigInteger = new BigInteger("237888888999999999999999999991");System.out.println(bigInteger);//在对BigInteger 进行操作时,需要使用对应的方法,不能直接用运算符;//可以创建一个要操作的 BigInteger 然后进行相应的操作BigInteger bigInteger1 = new BigInteger("1111111111111111111111");//加  bigInteger1+bigIntegerBigInteger add = bigInteger1.add(bigInteger);System.out.println(add);//237888888999999999999999999991+1111111111111111111111//减 bigInteger1-bigIntegerBigInteger subtract = bigInteger1.subtract(bigInteger);System.out.println(subtract);//乘  bigInteger1*bigIntegerBigInteger multiply = bigInteger1.multiply(bigInteger);System.out.println(multiply);//除  bigInteger1/bigIntegerBigInteger divide = bigInteger1.divide(bigInteger);System.out.println(divide);}
}

结果
在这里插入图片描述

BigDecimal方法:

public class BigDecimal_ {public static void main(String[] args) {//当我们需要保存一个精度很高的数,double不够用时,可以使用BigDecimaldouble d = 1999.11111111111999999999999977788222222;//输出 1999.11111111112  只能保存小数点后11位小数System.out.println(d);BigDecimal bigDecimal = new BigDecimal("1999.11111111111999999999999977788222222");// 输出 1999.11111111111999999999999977788222222System.out.println(bigDecimal);//如果对 BigDecimal 进行运算,比如加减乘除,需要使用对应的方法,// 创建一个需要操作的 BigDecimal 然后调用相应的方法即可BigDecimal bigDecimal1 = new BigDecimal(3);//bigDecimal+bigDecimal1System.out.println(bigDecimal.add(bigDecimal1));//bigDecimal-bigDecimal1System.out.println(bigDecimal.subtract(bigDecimal1));System.out.println(bigDecimal.multiply(bigDecimal1));//System.out.println(bigDecimal.divide(bigDecimal1));//会抛出异常ArithmeticException,因为可能为无限循环小数//解决办法://在调用divide方法时,指定精度即可 BigDecimal.ROUND_CEILING,这样出现无限循环小数时,就会保留分子精度System.out.println(bigDecimal.divide(bigDecimal1,bigDecimal.ROUND_CEILING));}
}

结果
在这里插入图片描述

这篇关于BigInteger和BigDecimal类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975099

相关文章

Java - BigDecimal 计算分位(百分位)

日常开发中,如果使用数据库来直接查询一组数据的分位数,就比较简单,直接使用对应的函数就可以了,例如:         PERCENT_RANK() OVER(PARTITION BY 分组列名 ORDER BY 目标列名) AS 目标列名_分位数         如果是需要在代码逻辑部分进行分位数的计算,就需要我们自己写一个工具类来支持计算了 import static ja

史上最全BigDecimal的5种进位方式:ROUND_UP,ROUND_DOWN,ROUND_CEILING,ROUND_FLOOR,ROUND_HALF_UP,ROUND_HALF_DOWN的比较

先上JAVA官方文档 /*** Rounding mode to round away from zero. Always increments the* digit prior to a nonzero discarded fraction. Note that this rounding* mode never decreases the magnitude of the cal

BigDecimal使用注意的地方

BigDecimal 是 Java 中的一个类,这个相信大家都是知道的。它的作用就是可以表示任意精度的十进制数,BigDecimal 提供了精确的数字运算,适用于需要高精度计算的场景。 一、浮点精度 我们先来看一个例子: public static void main(String[] args) {BigDecimal num1 = new BigDecimal("0.1");Bi

java中biginteger和bigdecimal在大数计算中的使用

java中的BigInteger和BigIntegerDecimal 当我们在做Acm的大数题时,我们会发现int,double,表示的范围有限,不能够满足要求,对于c/c++而言,我们就只能采用数组模拟的方法来实现高精度大数的操作。然而java的jdk1.5后就可以使用math包中的BigInteger和BigDecimal来帮助我们解决高精度大数和小数的问题。 1 BigInteger

BigDecimal加减乘除以及大小比较

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a double into a BigDecimal. 第二种:BigDecimal(String val)Translates the String repre sentation of a BigDecim

Java:BigDecimal 解决小数运算失真问题

文章目录 BigDecimal代码 BigDecimal 解决小数运算失真问题 解决方法:转换为BigDecimal对象 代码 package com.zhang.math;import java.math.BigDecimal;/*** @Author: ggdpzhk* @CreateTime: 2024-08-25*/public class BigDecima

JAVA学习笔记——BigInteger类和BigDecimal类

1、BigInteger : 可以让超过Integer范围内的数据进行运算 (1) 构造方法:     BigInteger(String val) (2) 常用方法:     public BigInteger add(BigInteger val) : 加     public BigInteger subtract(BigInteger val) : 减     public

BigDecimal学习

package com.api.bigDecimal;import java.math.BigDecimal;import java.math.RoundingMode;/*** BigDecimal类* (1)属于java.lang.math包下的一个类* (2)实现了Serializable, Comparable<BigDecimal>这两个接口* (3)继承自Number类* @auth

java 中的BigDecimal 舍入模式,及构造器精度

BigDecimal中的divide(BigDecimal divisor, int scale, int roundingMode) 方法,需要用到舍入模式。 roundMode是指舍位时候的模式,传参数的时候用BigDecimal.ROUND_XXXX_XXX,  有:  ROUND_CEILING:   舍位时往正无穷方向移动   1.1-> 2   1.5-> 2

【进阶篇-Day5:JAVA常用API的使用(Math、BigDecimal、Object、包装类等)】

目录 1、API的概念2、Object类2.1 Object类的介绍2.2 Object的toString()方法2.3 Object的equals()方法2.4 Objects概述 3、Math类4、System类5、BigDecimal类6、包装类6.1 包装类的概念6.2 几种包装类(1)手动转换包装类:(2)自动转换包装类:(3)Integet常用方法:(4)练习: 1