大数字处理类|学习笔记

简介: 快速学习大数字处理类

开发者学堂课程【Java 高级编程大数字处理类】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/328


大数字处理类


内容介绍:


1.大数字处理类的作用

2. 两种大数字处理类及其构造

3. 大数字类

4. 范例:使用 BigInteger 进行四则运算

5. divide AndRemainder(求余除法)

6.大数字处理类的使用范围

7. 范例:使用 BigDecimal 计算

8. 除法计算

9. 使用  BigDecimal 实现四舍五入处理

10. Math 与大数字处理类的区别


大数字处理类的作用:

大数字处理类可以实现海量数字的计算


两种大数字处理类及其构造:

BigInteger 类构造:public BigInteger(String val);

BigDecimal 类构造:public BigDecimal(String val);

大数字类

图片23.png


 范例:使用 BigInteger 进行四则运算

package cn.mldn.demo;

import java.math.BigInteger;

public class JavaAPIDemo {

public static void main(String[] args) throws Exception {

BigIntegerbigA = new

BigInteger("234134234234234234")

BigInteger bigB = new BigInteger("23423423");

System.out.println("加法操作:"+bigA.add(bigB));

System.out.println("减法操作:*+bigA.subtract(bigB));

System.out.println["乘法操作:"+bigA.multiply(bigB)D;

System.out.println("除法操作:"+bigA.divide(bigB));

图片24.png

需要注意的是,虽然提供有大数字类处理方法,但仍然需要考虑性能问题

divide AndRemainder(求余除法)

求余:Public BigInteger[]divide AndRemainder(BigInteger val)数组第一个元素为商,第二个为余数

范例:求余除法

 

package cn.mldn.demo;

import java. math. BigInteger;

public class JavaAPIDemo {

public static void main(String[] args) throws Exception {

BigIntegerbigA = new BigInteger("234234234234234234");

BigInteger bigB = new BigInteger("23423423");

BigInteger result [] = bigA.divideAndRemainder(bigB);

System.out.println("商:"+result[0]+"、余数:"+result[1]);

}

}

图片25.png


大数字处理类的使用范围

如果在计算时没有超过基本数据类型所包含的位数强烈不建议使用大数字处理类方法,因为性能很低,

 

 范例:使用 BigDecimal  计算

package cn.mldn.demo;

import java.math.BigDecimal;

public class JavaAPIDemo {

public static void main(string[] args) throws Exception {

BigDecimalbigA = new

BigDecimal("32890234890");

BigDecimal bigB = new BigDecimal("1892039");

System.out.println("加法计算:"+bigA.add(bigB));

BigDecimal result [] = bigA.divideAndRemainder(bigB);System.out.println("除法计算,商,"+result[e]+“、余数,"+result[1]);

}

}

图片26.png


除法计算:

public BigDecimal divide(BigDecimal divisor,int scale,RoundingMode roundingMode)

图片27.png


使用 BigDecimal 实现四舍五入处理

package cn.mldn.demo;

import java.math.BigDecimal;

import java. math. RoundingMode;

class MathUtil {

privateMathutil() {}

/**

实现数据的四舍五入操作

*@param num 要进行四舍五入操作的数字

@param scale 四舍五入保留的小数位数

@return 四舍五入处理后的结果

public static double round (double num, int scale) {

return new BigDecimal(num).divide(new BigDecimal(1.0),scale,RoundingMode.HALF_UP).doubleVal

}

}

public class JavaAPIDemo {

public static void main(String[] args) throws Exception {

System.out.println(MathUtil.round(19.6352,2));

}

}


Math 与大数字处理类的区别

BigDecimal 与 Math 相比,Math 的处理由于使用的都是基本数据类型,所以性能高于大数字处理类 BigDecimal

 

相关文章
|
6月前
|
Java
【JavaSE专栏64】抽象类和接口,不能被实例化的类有什么用?
【JavaSE专栏64】抽象类和接口,不能被实例化的类有什么用?
120 0
|
6月前
|
Java
【JavaSE专栏65】内部类的使用,定义在其他类内部的类
【JavaSE专栏65】内部类的使用,定义在其他类内部的类
|
10月前
|
C++
C++类的学习1(二)
的定义一般包括两部分,一是类的属性,二是他所拥有的方法。类的实例化是指给类的加载并初始化过程,比如一个people类,我们具体到每一个人就是类的实例化,此外一个类可以在此类上进行扩展。比如people类,我们分为 外国people 和 中国people,那么people叫做基类,外国people叫做派生类或子类
|
10月前
|
C++
C++类的学习1(一)
的定义一般包括两部分,一是类的属性,二是他所拥有的方法。类的实例化是指给类的加载并初始化过程,比如一个people类,我们具体到每一个人就是类的实例化,此外一个类可以在此类上进行扩展。比如people类,我们分为 外国people 和 中国people,那么people叫做基类,外国people叫做派生类或子类
|
存储 PHP 开发者
类内部对象|学习笔记
快速学习类内部对象
71 0
类内部对象|学习笔记
|
Java 编译器 PHP
C++学习笔记1:类的使用
C++学习笔记1:类的使用1. 类的定义与使用2. 类的成员变量和成员函数3. 构造函数4. 析构函数5.5 友元函数和友元类
95 0
C++学习笔记1:类的使用
|
SQL 关系型数据库 数据库连接
接口继承|学习笔记
快速学习接口继承,接口只能被类去实现,如果想要规范团队,也不能把所有想要规范的东西写在一个接口里,这样会使接口臃肿,不好实现接口的类,因为有可能并不需要这么多规范。为了使接口的体系更加完整,更加具有结构性,就有了接口继承。本节的目标是理解接口的继承体系,掌握具体的接口继承实现。
92 0
接口继承|学习笔记
|
PHP 开发者
继承|学习笔记
快速学习继承
56 0
继承|学习笔记