大数字处理类|学习笔记

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

开发者学堂课程【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

 

相关文章
|
30天前
|
Serverless 编译器 C++
【C++面向对象——类的多态性与虚函数】计算图像面积(头歌实践教学平台习题)【合集】
本任务要求设计一个矩形类、圆形类和图形基类,计算并输出相应图形面积。相关知识点包括纯虚函数和抽象类的使用。 **目录:** - 任务描述 - 相关知识 - 纯虚函数 - 特点 - 使用场景 - 作用 - 注意事项 - 相关概念对比 - 抽象类的使用 - 定义与概念 - 使用场景 - 编程要求 - 测试说明 - 通关代码 - 测试结果 **任务概述:** 1. **图形基类(Shape)**:包含纯虚函数 `void PrintArea()`。 2. **矩形类(Rectangle)**:继承 Shape 类,重写 `Print
46 4
|
6月前
|
存储 Java 开发者
抽象类和接口,你不知道的秘密!Java编程新视角
抽象类和接口,你不知道的秘密!Java编程新视角
52 5
|
8月前
|
存储 Java 开发者
Java编程新视角:抽象类和接口,你不知道的秘密!
【6月更文挑战第17天】在Java中,抽象类与接口是抽象概念的关键工具。抽象类是不可实例化的模板,包含抽象和具体方法,适合有层次结构的继承;接口仅含抽象方法,像契约般规定实现类的行为,适用于无关对象间的统一接口。Java类单继承但可多实现接口,增加设计灵活性。理解并巧妙运用二者,能提升代码质量和可维护性。
34 0
|
Java
数字处理工具类
数字处理工具类
90 0
|
存储 Java 程序员
【C#本质论 六】类-从设计的角度去认知(封装)(上)
【C#本质论 六】类-从设计的角度去认知(封装)(上)
121 0
|
编译器 C#
【C#本质论 六】类-从设计的角度去认知(封装)(下)
【C#本质论 六】类-从设计的角度去认知(封装)(下)
101 0
|
存储 开发框架 .NET
【C#本质论 七】类-从设计的角度去认知(继承)(上)
【C#本质论 七】类-从设计的角度去认知(继承)(上)
105 0
|
编译器 C#
【C#本质论 七】类-从设计的角度去认知(继承)(下)
【C#本质论 七】类-从设计的角度去认知(继承)(下)
76 0
|
算法
11 类和对象练习之扑克模拟
11 类和对象练习之扑克模拟
98 0