package cn.sasa.demo5;

import java.math.BigDecimal;
import java.math.BigInteger; public class BigDataDemo {
public static void main(String[] args) {
//BigInteger
//数字太大,超过了long的范围
//long num1 = 9999999999999999999999999999999999999999999999L;
BigInteger num1 = new BigInteger("999999999999999999999999999999999477");
BigInteger num2 = new BigInteger("77777597111111111111111117777");
//加法
BigInteger addNum = num1.add(num2);
System.out.println(addNum); //减法
BigInteger subNum = num1.subtract(num2);
System.out.println(subNum); //乘法
BigInteger mulNum = num1.multiply(num2);
System.out.println(mulNum); //除法
BigInteger divNum = num1.divide(num2);
System.out.println(divNum); //BigDecimal
//double 会造成精度不准确
// double num3 = 0.01 + 0.09;
// System.out.println(num3);//0.09999999999999999
// System.out.println(0.03-0.01);//0.019999999999999997
// System.out.println(1.0023 * 100);//100.22999999999999
// System.out.println(1.301 / 100);//0.013009999999999999 BigDecimal deci1 = new BigDecimal("0.01");
BigDecimal deci2 = new BigDecimal("0.09"); BigDecimal addDeci = deci1.add(deci2);
System.out.println(addDeci);//0.10 BigDecimal deci3 = new BigDecimal("0.03");
BigDecimal deci4 = new BigDecimal("0.01");
BigDecimal subDeci = deci3.subtract(deci4);
System.out.println(subDeci);//0.02 BigDecimal deci5 = new BigDecimal("1.0023");
BigDecimal deci6 = new BigDecimal("100");
BigDecimal mulDeci = deci5.multiply(deci6);
System.out.println(mulDeci);//100.2300 BigDecimal deci7 = new BigDecimal("1.301");
BigDecimal diviDeci = divideBigDecimal(deci7, deci3);
System.out.println(diviDeci); } //BigDecimal 的除法运算
static BigDecimal divideBigDecimal(BigDecimal num1, BigDecimal num2) {
/**
* BigDecimal 除不尽会抛异常,解决方式:
* divide(divisor, scale, roundingMode)
* divisor 除数
* scale 保留几位小数
* roundingMode 保留模式
* static int ROUND_UP 向上+1
* static int ROUND_DOWN 直接舍去
* static int ROUND_HALF_UP >= 0.5 向上+1
* static int ROUND_HALF_DOWN > 0.5 向上+1 ,否则直接舍去
*/
@SuppressWarnings("deprecation")
BigDecimal rs = num1.divide(num2, 2, BigDecimal.ROUND_DOWN); //jdk9 之后会警告这个方法已过期
//BigDecimal rs = num1.divide(num2);
return rs;
}
}

java 大数据运算 BigInteger BigDecimal的更多相关文章

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

    基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字 ...

  2. JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算

    个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...

  3. java基础(17):包装类、System、Math、Arrays、大数据运算

    1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...

  4. Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器

    基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...

  5. 基本类型包装类、System类、Math类、Arrays类、大数据运算

    1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...

  6. 常用API(包装类、System、Math、Arrays、大数据运算)

    常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...

  7. 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义

    今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...

  8. 使用Stack堆栈集合大数据运算

    使用Stack堆栈集合大数据运算 package com.sta.to; import java.util.Iterator; import java.util.Stack; public class ...

  9. 大数据运算模型 MapReduce 原理

    大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计 ...

随机推荐

  1. React Native常用组件之ScrollView

    1. 两个要点 1.1 ScrollView必须有一个确定的高度才能正常工作 它实际上所做的就是将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作) 通常有两种做法: 第一种: 直接给该S ...

  2. modelsim 中如何加载多个对比波形文件

    首先选中波形,然后点击file----datasets. 选中sim文件,然后点击save as. 对所保存的文件命名.完成之后点击done即可. 在完成上述的加载波形之后,会有多个.wlf文件,如上 ...

  3. 实验室ubuntu连ipv6

    1.买个极路由 2.无线中继连tsinghua-5G 3.安装ipv6插件 4.联网或者科协vpn 5.下载bt客户端:sudo apt-get install qbittorrent   (或者su ...

  4. 使用Three.js里的各种光源

    1.three.js库提供的光源 three.js库提供了一些列光源,而且没种光源都有特定的行为和用途.这些光源包括: 光源名称/描述 AmbientLight(环境光)/这是一种基础光源,它的颜色会 ...

  5. cookie是如何保存到客户端,又是如何发送到服务端

    Cookie相关的Http头     有 两个Http头部和Cookie有关:Set-Cookie和Cookie.     Set-Cookie由服务器发送,它包含在响应请求的头部中.它用于在客户端创 ...

  6. MySql安全模式的关闭和开启

    #MySql关闭安全模式 ; commit; #MySql开启安全模式 ; commit;

  7. TestLink汉化操作

    实验环境版本 xampp-windows-x64-7.3.2-0-VC15-installer + testlink-1.9.19 汉化操作如下 打开testlink的配置文件F:\xampp\htd ...

  8. (ecj)Eclipse的Java编译器分析之一——ecj介绍

    Java是一个开放的平台,对于除发布编译器/解释器/基础类库之外,该语言的负责机构更多的是制定一系列标准,任何符合标准的厂商产品均可用于市场投放.甚至包括其编译器及解释器. (比如Hibernate提 ...

  9. 试着理解cookie和session

    web服务一个特点是提供个性化服务,为很多客户端提供服务,那么每个用户不同,服务自然不同,所以要记住用户及其状态,这也很多应用软件的通用功能. 由于http是无状态的,Session和Cookie是两 ...

  10. javaweb学习之建立简单网站

    看到很多网站,论坛等,很实用,想做一个,比如中国图书网,它们的共同特点是运行在浏览器中. 最简单可行的技术就是jsp实现,但是jsp虽然可以在服务器端显示,在客户端连接数据库,且客户端和服务器端要完成 ...