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. OpenGL教程一

    引自:https://blog.csdn.net/u013654125/article/details/73613644 GLEW, GLFW和GLM介绍 现在你有了工程,就让我们开始介绍下工程所用到 ...

  2. ssh-remote-port-forwarding

    1.ssh免密码登录(A登录到B) 1.1.在A上执行并在~/.ssh下生成id_rsa和id_rsa.pub两个文件 ssh-keygen -t rsa -P '' 1.2.拷贝id_rsa.pub ...

  3. React Native - FlexBox弹性盒模型

    FlexBox布局 1. 什么是FlexBox布局?   弹性盒模型(The Flexible Box Module),又叫FlexBox,意为"弹性布局",旨在通过弹性的方式来对 ...

  4. JavaScript高级用法三之浏览器对象

    综述 本篇的主要内容来自慕课网,内置对象,主要内容如下 1 window对象 2 JavaScript 计时器 3 计时器setInterval() 4 取消计时器clearInterval() 5 ...

  5. Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解

    一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...

  6. DapperExtensions and Dapper.Contrib在表构架不是默认dbo时的处理 DapperExtensions and Dapper.Contrib with non-dbo Schema

    什么是数据库的Schema dbo是一个构架(schema),与sql2000不同的是,在sql2005中,表的调用格式如下:"数据库名.构架名.表名",同一个用户可以被授权访问多 ...

  7. AngularJS中$timeout和$interval的用法详解

    1. 先将$interval,$timeout,作为参数注入到controller中,例如rds.controller('controllerCtrl', ['app', '$scope','$htt ...

  8. 如何处理MySQL每月5亿的数据

    第一阶段:1,一定要正确设计索引2,一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描)3,一定要避免 limit 100000 ...

  9. 使用 wondershaper 在 Linux 中限制网络带宽使用

    wondershaper 实际上是一个 shell 脚本,它使用 tc 来定义流量调整命令,使用 QoS 来处理特定的网络接口.外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的:而传入流 ...

  10. Oracle迁移至PostgreSQL工具之Ora2Pg

    1. 描述 Ora2Pg是一个免费的工具,用于将Oracle数据库迁移到PostgreSQL兼容的模式.它连接您的Oracle数据库,自动扫描并提取它的结构或数据,然后生成可以装载到PostgreSQ ...