JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)
当基础数据类型长度无法满足需求时可以使用大数类
构造方法接受字符串为参数
BigInteger bInt = new BigInteger("123123");
BigDecimal bDouble = new BigDecimal("123123.123123124");
基础操作(取模使用divideAndRemainder方法,返回的数组第二个元素为余数):

BigDecimal在做除法时必须设定传入精度(保留多少位小数),否则会出现异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。
除法还有两个接受不同数量参数的方法:
接受两个参数的方法:
@param divisor value by which this {@code BigDecimal} is to be divided. 传入除数
@param roundingMode rounding mode to apply. 传入round的模式
三个参数的方法:
@param divisor value by which this {@code BigDecimal} is to be divided. 传入除数
@param scale scale of the {@code BigDecimal} quotient to be returned. 传入精度
@param roundingMode rounding mode to apply. 传入round的模式
round模式为小数取舍模式:
BigDecimal.ROUND_UP:最后一位如果大于0,则向前进一位,正负数都如此。
BigDecimal.ROUND_DOWN:最后一位不管是什么都会被舍弃。
BigDecimal.ROUND_CEILING:如果是正数,按ROUND_UP处理;如果是负数,按照ROUND_DOWN处理。例如,7.1->8;-7.1->-7。所以,这种近似的结果都会>=实际值。
BigDecimal.ROUND_FLOOR:跟BigDecimal_ROUND_CEILING相反。例如,7.1->7;-7.1->-8。这种处理的结果<=实际值。
BigDecimal.ROUND_HALF_DOWN:如果最后一位<=5则舍弃,如果>5, 向前进一位。如,7.5->7;7.6->8;-7.5->-7 。
BigDecimal.ROUND_HALF_UP:如果最后一位<5则舍弃,如果>=5, 向前进一位。反之舍弃。如,7.5->8;7.4->7;-7.5->-8 。 —> (四舍五入)常用
BigDecimal.ROUND_HALF_EVEN:如果倒数第二位是奇数,按照BigDecimal.ROUND_HALF_UP处理;如果是偶数,按照BigDecimal.ROUND_HALF_DOWN来处理。如,7.5->8;8.5->8;7.4->7;-7.5->-8。
BigDecimal有一个setScale()方法,可以接受两个参数
1、保留位数
2、round模式
输出可以直接调用.toString();
JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)的更多相关文章
- JAVA大数类
JAVA大数类api http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary 不仅仅只能查J ...
- ZOJ3477&JAVA大数类
转:http://blog.csdn.net/sunkun2013/article/details/11822927 import java.util.*; import java.math.BigI ...
- Java File类基础解析 1
Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...
- HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
Big Number 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 ——每天在线,欢迎留言谈论. 题目大意: 给你两个数 n1,n2.其中n1 ...
- C++ 大数运算(加减乘除取模)
加法:(字符串模拟小学加法) string add(string s1, string s2) { int len1 = s1.length(), len2 = s2.length(); ; '); ...
- JAVA大数类练手
今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...
- Java大数类介绍
java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math. ...
- HDU高精度总结(java大数类)
HDU1002 A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...
- JAVA - 大数类详解
写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...
随机推荐
- Mysql5.5升级到5.7的过程已经踩到的坑
https://blog.csdn.net/u014534986/article/details/79699750 故事是这样子的,我们公司有几台老的mysql版本是5.5的,最近项目做了一些升级增加 ...
- HDU 6623"Minimal Power of Prime"(数学)
传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 定义 $ans$ 表示最终答案: ①如果 $ans \ge 5 ...
- eclipse本地启动tomcat报错集锦
1.eclipse本地添加tomcat服务器 打开Eclipse,单击“window”菜单,选择下方的“Preferences”: 找到Server下方的Runtime Environment, ...
- 2018-2-13-win10-uwp-获取指定的文件-AQS
title author date CreateTime categories win10 uwp 获取指定的文件 AQS lindexi 2018-2-13 17:23:3 +0800 2018-2 ...
- Js 时间戳显示和计算时间间隔
显示时间戳 很多地方会让页面显示当前时间并实时计时功能,例:2019年5月23号 10:28::34 代码实现如下: getTime(){ var mydate = new Date(); var y ...
- The solution to duplicated code
The solution to duplicated code involves twe steps(Extraction and Invocation) that would be explaine ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(6)之配置文件设置
现在该有的结构和层级都有了,下面我们就开始实际应用,首先把需要用的js,css,图片放到Content文件夹中. 这里不详细讲解,大家可根据自己的实际情况,使用合适自己的前端框架,也可以点击下载本项目 ...
- 关于对height:100%的研究
参考此链接: https://segmentfault.com/a/1190000012707337
- vue-learning:3-template-{{}}-and-v-html
插值{{ }} 和 v-html 本节开始,我们按如下顺序学习vue模板API-指令.点击各部分的DEMO可在线查看代码 输出字符串文本内容的插值:{{}} 输出HMTL元素作为内容的指令:v-htm ...
- vue 实例未加载完成显示 花括号解决方案
css [v - cloak] { display: none!important; } html < div id = "app" v-cloak >