大数字处理类|学习笔记

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

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

 

相关文章
|
Java
数字处理工具类
数字处理工具类
91 0
|
Java 开发者
泛型,不只是简单类 | 带你学《Java面向对象编程》之六十六
泛型不光可以用在类的定义上,它同样也能用于接口和方法的定义,本节将为读者展示这两类使用方式。
泛型,不只是简单类   | 带你学《Java面向对象编程》之六十六
|
XML 安全 Java
教你精通Java语法之第十三章、反射
Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到,那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。1. 反射的意义2. 反射重要的几个类: Class类 、Field类、 Method类、 Constructor类3. 学会合理利用反射,一定要在安全环境下使用。
82 0
编程实现三天打鱼两天晒网
三天打鱼两天晒网
484 0
编程实现三天打鱼两天晒网
|
搜索推荐 Java
教你如何自定义“异常” | 带你学《Java面向对象编程》之八十一
官方提供的异常类是针对常见的问题定义的,而在实际的开发中总会遇到各种各样的其他异常,本节将为读者展示如何自定义异常类以及如何使用断言来判定程序执行结果得准确性。
教你如何自定义“异常”   | 带你学《Java面向对象编程》之八十一
|
安全 Java
初识“多继承小帮手”-接口 | 带你学《Java面向对象编程》之五十七
众所周知,Java中只允许单继承,但在实际应用中不免会有多继承的要求,此时,接口便应运而生了。
|
算法
11 类和对象练习之扑克模拟
11 类和对象练习之扑克模拟
109 0
|
机器学习/深度学习 Java
教你成为字符串连连看高手 | 带你学《Java面向对象编程》之三十二
本节简单介绍了字符串之间进行比较的几个常用的方法,并对它们的异同做了较为细致的分析。
|
C语言
计组、离散,对编程特别重要吗?
  今天,到青岛主持一个信息化教学培训班,回家很晚了。在群中胡逛一会休息。   有学生提问。
1134 0