首页 > 编程语言 >Java实践二

Java实践二

时间:2022-09-19 18:35:26浏览次数:61  
标签:BigInteger Java BigDecimal bigint1 bigint2 实践 new double1

关于BigInteger:

由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。由此Java提供了BigInteger类,支持大整数的加减乘除运算。

BigInteger的头文件为java.math.BigInteger,定义数据的方式为BigInteger bigint1 = new BigInteger("大数字");BigInteger bigint2 = new BigInteger("大数字");使用BigInteger运算的时候就不能用+、-、*、/,而应使用相对应的函数,分别为:bigint1.add(bigint2)、bigint1.subtract(bigint2)、bigint1.multiply(bigint2)、bigint1.divide(bigint2);输入大数字的方法与输入一个int类型的数据相似,步骤为Scanner sc = new Scanner(System.in); BigInteger bigint = sc.nextBigInteger();比较两个大数字的大小如bigint1>=bigint2应使用BigInteger中的函数bigint1.compare(bigint2)>=0;上一节课中学到产生int类型的随机数,Random r = new Random(); int i= r.nextint();而产生BigInteger类型的大数字方法为 BigInteger bigint =new BigInteger(int numBits,Random());产生指定范围内的BigInteger类型的大数字可以使用一下方法

public static BigInteger getBigInt(BigInteger bigint)
{
  BigInteger r2=new BigInteger(64,new Random());
  while(r2.compareTo(bigint)>0)
  {
    r2=new BigInteger(64,new Random());
  }
  return r2;
}

但是当大数字较小的时候所需要的运行时间很长。

关于BigDecimal:

计算机进行的是二进制的运算,我们输入的十进制的数字会转化成二进制进行计算然后在转化为十进制进行输出这个过程中可能会出现一定的误差,这个时候就要用到java.math.BigDeciamal类了

定义为  BigDecimal double1 = new BigDecimal(Double.toString(1.1)); BigDecimal double1 = new BigDecimal(Double.toString(6.6)); 加减乘除的运算为double1.add(double2)、double1.subtract(double2)、double1.multiply(double2)、double1.divide(double2);

通过以上方式实现浮点数的精确计算和实现无限大整数的计算。

标签:BigInteger,Java,BigDecimal,bigint1,bigint2,实践,new,double1
From: https://www.cnblogs.com/cinan/p/16708368.html

相关文章

  • BigDecimal除法报错Method threw ‘java.lang.ArithmeticException‘ exception.
    今天使用BigDecimal数据类型做除法的时候,遇到以下报错:Methodthrew‘java.lang.ArithmeticException’exception.Non-terminatingdecimalexpansion;noexactreprese......
  • javascript的类的继承
     先看下java的继承,java的继承是发生在类之间,他们的对象之间没有继承关系,子类的对象通过子类创建对象,同时对象中不存储函数只有数据,函数需找到类定义以后读取里面的函数,类......
  • 了解3D世界的黑魔法-纯Java构造一个简单的3D渲染引擎
    简介: 对于非渲染引擎相关工作的开发者来说,可能认为即使构建最简单的3D程序也非常困难,但事实上并非如此,本篇文章将通过简单的200多行的纯Java代码,去实践正交投影、简单三......
  • 实验二:Open vSwitch虚拟交换机实践
    一.基本要求1.执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果2.使用Mininet搭建的SDN拓扑,下发流表2.1开启MininetCLI并执行pingall命令2.2下发流......
  • JavaScript break 和 continue 语句
    break语句用于跳出循环。continue用于跳过循环中的一个迭代。break语句break语句可用于跳出循环。break语句跳出循环后,会继续执行该循环之后的代码continue语句......
  • 数据结构与算法【Java】07---树结构基础部分
    前言数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构才可以编写出更加漂亮,更加有效率的代码。要学习好数据结构就......
  • JavaScript for 循环
    循环可以将代码块执行指定的次数。for循环:如果向多次运行相同代码,且每次的值都是不同,那就使用循环不同类型的循环JavaScript支持不同类型的循环:for -循环代码块一......
  • JavaScript if...Else 语句
    if语句      语法二:        if(条件表达式){          语句……        }else{     ......
  • JavaScript switch 语句
    语法switch(n){case1:执行代码块1break;case2:执行代码块2break;default:与case1和case2不同时执行的代码} n通常为变量,随后表达式的值会......
  • JAVA基础Day2-基本运算符/自增自减运算符/逻辑运算符、位运算符/包机制
    一、基本运算符算术运算符:+、-、*、/、%、++、--赋值运算符:=关系运算符:>、<、>=、<=、==、!=instanceof逻辑运算符:&&、||、!位运算符:&、|、^、~、>>、<<条件运算符:?:......