java 大数据运算 BigInteger BigDecimal
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的更多相关文章
- 7、包装类、System、Math、Arrays、大数据运算
基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字 ...
- JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算
个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...
- java基础(17):包装类、System、Math、Arrays、大数据运算
1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...
- Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器
基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...
- 基本类型包装类、System类、Math类、Arrays类、大数据运算
1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...
- 常用API(包装类、System、Math、Arrays、大数据运算)
常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...
- 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义
今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...
- 使用Stack堆栈集合大数据运算
使用Stack堆栈集合大数据运算 package com.sta.to; import java.util.Iterator; import java.util.Stack; public class ...
- 大数据运算模型 MapReduce 原理
大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计 ...
随机推荐
- mac上Python多版本共存(python2.7.10和python3.5.0)
本文的实现目标是在mac上安装一个python3.5.0的版本,跟当前系统自带的python2.7.10共存. 查看当前版本号 python -V 2.7.10 安装配置Python版本管理器pyen ...
- 线程安全的ConcurrentQueue<T>队列
队列(Queue)代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时,则使用队列.当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队. ConcurrentQueue< ...
- 面试之C语言字符串操作总结大全(转载)
趁着十一就好好补补数据结构吧,通信这个不软不硬的专业,现在还是得好好学学补习补习,,你这个非211的本科生!虽然拿到了一个offer,但是觉得时间还有,得继续拼一拼,希望不辜负! 1)字符串操作 st ...
- Git 解决本地远端版本冲突
简单粗暴.... git push -u origin master -f
- Markdown 引用
Markdown 使用 > 来标记区块引用,语法及效果如下: > 这是第一级引用 > > > 这是第二级引用 > > 现在回到第一级引用 > > ...
- vagrant up connection time out
vagrant up connection time out 在一台重装系统的机子上装vagrant后 vagrant up 无法启系统 D:\work\vagrant>vagrant up B ...
- Centos7下使用mail发送邮件配置
参考文档:https://blog.csdn.net/lyf844692713/article/details/81479066 安装环境查看 查看服务是否安装 rpm -qa|grep mail 如 ...
- SQL 2017 远程连接被拒绝
1.防火墙端口 2.数据库要能帐号登录 可是还是不行 打开:SQL Server 2017 配置管理器->SQL Server 服务 ->SQLServer(你的实例名)-> 右键- ...
- PL-SLAM
双目 1.PL-SLAM: a Stereo SLAM System through the Combination of Points and Line Segments ubuntu14.04配置 ...
- {python之协程}一 引子 二 协程介绍 三 Greenlet 四 Gevent介绍 五 Gevent之同步与异步 六 Gevent之应用举例一 七 Gevent之应用举例二
python之协程 阅读目录 一 引子 二 协程介绍 三 Greenlet 四 Gevent介绍 五 Gevent之同步与异步 六 Gevent之应用举例一 七 Gevent之应用举例二 一 引子 本 ...