大数字运算

本博客主要讲解

1、BigInteger

2、BigDecimal

  在BigInteger类中封装了多种操作,除了基本的加、减、乘、除操作之外,还提供了绝对值、相反数、最大公约数以及判断是否为质数等操作。

  当使用BigInteger类时,可以实例化一个BigInteger对象,并自动调用相应的构造函数。BigInteger类具有很多构造函数,但最直接的一种方式是参数以字符串形式代表要处理的数字。

  BigDecimal和BigInteger都能实现大数字的运算,不同的是BigDecimal加入了小数的概念。一般的float型和double型数据只可以用来做科学计算或工程计算,但由于在商业计算中要求数字精度比较高,所以要用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值。

import java.math.BigInteger;

public class test {

    public static void main(String[] args) {

        BigInteger bi1=new BigInteger("100");
        BigInteger bi2=new BigInteger("2");

        System.out.println(bi1.add(bi2));   //+
        System.out.println(bi1.subtract(bi2));   //-
        System.out.println(bi1.multiply(bi2));   //*
        System.out.println(bi1.divide(bi2));    //(除)

        BigInteger[] arr=bi1.divideAndRemainder(bi2);    //取除数和余数
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }

    }

}
输出:
102
98
200
50
50
0

BigDecimal详解参见:https://www.cnblogs.com/LeoBoy/p/6056394.html

原文地址:https://www.cnblogs.com/duaner92/p/10342343.html

时间: 2024-07-30 13:11:59

大数字运算的相关文章

Java 高精度的大数字运算

为了解决Java基本数据类型在运算时会出现的溢出和计算不精确的问题.Java 提供了两个类BigInteger和BigDecimal,专门用于进行高精度运算.凡是能用int 或float 做的事情,用BigInteger和BigDecimal也可以做,只是必须换用方法调用,而不是使用运算符. 高精度整数BigInteger BigInteger支持任意精度的整数,也就是说我们可精确表示任意大小的整数值:同时在运算过程中不会丢失任何信息: 高精度浮点数BigDecimal 它可以表示任意精度的小数

java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)

一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start=System.currectTimeMillis() ,long stop=System.currectTimeMillis() , stop-start; 二  有关大数据的运算及精确数字运算. 此时integer不适用.我们使用BigInteger ,如:BigInteger B= new Bi

大数据运算模型 MapReduce 原理

大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计算模型 MapReduce 通俗解释 图书馆要清点图书数量,有10个书架,管理员为了加快统计速度,找来了10个同学,每个同学负责统计一个书架的图书数量 张同学 统计 书架1王同学 统计 书架2刘同学 统计 书架3...... 过了一会儿,10个同学陆续到管理员这汇报自己的统计数字,管理员把各个数字加

javascript 大数值数据运算

javascript数字运算结果不准确: 1.浮点型数字进行运算时,基本四则运算结果都可能不准确,一般是把浮点型数据转换为整型运算,然后在还原处理. 这种情况下可以用一些常用转换方法计算,如下: 1 /** 2 * 加法运算 3 */ 4 function numAdd(num1, num2) { 5 var baseNum, baseNum1, baseNum2; 6 try { 7 baseNum1 = num1.toString().split(".")[1].length; 8

【Powershell】【Math Class】直接调用Math Class的.Net方法进行数字运算

Powershell里对数字的计算我们通常还习惯于简单的使用运算符号去进行,但是对于相对复杂的数字运算则需要相对复杂的函数或命令去进行,这里我们介绍一种直接通过.Net类的计算方法,简单直接的去进行复杂的数字运算而表达式极度简洁.同时也让我们能逐步深入的接触Powershell,因为Powershell正在基于.Net面向对象的程式化语言. 一.格式 Math Class的使用非常简单,重点是要注意格式,任何直接基于.Net类的方法都需要使用["class"]::methed的表达式.

基于Java的大整数运算的实现(加法,减法,乘法)学习笔记

大整数,顾名思义就是特别大的整数. 一台64位的机器最大能表示的数字是2的64次方减一: 18446744073709551615 java语言中所能表示的整数(int)最小为-2147483648 public class test { public static void main(String[] args) { System.out.println(Integer.MIN_VALUE); } } 最大为 2147483647 public class test { public stat

Date、DateFormat类、Calendar类、基本类型包装类、System类、Math类、Arrays类、大数据运算类

1.Date (1)概述: 时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 注意:时间和日期的计算,必须依赖毫秒值 ----------------Date()获取当前时间 import java.util.Date; public class Demo06boke { public static void main(String[] args) { Date sdf=new Date(); System.out.println(sdf); } } Date(lon

7、包装类、System、Math、Arrays、大数据运算

基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等 *b.八种基本类型对应的包装类 char Character int Integer byte Byte short Short long Long float Float double D

大整数运算模板总结

大整数运算模板总结. 大整数结构体表示 整型数组从低位到高位顺序存储每一位数字,另外需要存储数字的长度. struct bign { int d[1000]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; } }; 大整数输入 一般通过字符串输入. bign Change(string str)//输入字符串转大整数 { bign a; a.len = str.length(); for (int i = 0; i < a.len; i++