当基础数据类型长度无法满足需求时可以使用大数类

构造方法接受字符串为参数

1 BigInteger bInt = new BigInteger("123123");2 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大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...相关推荐

  1. java 大数类_Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...

  2. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

  3. java爬虫面试题_Java 网络爬虫基础知识入门解析

    前言 说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做 ...

  4. java修饰符默认_Java的类,方法,变量等等的默认修饰符是什么

    访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权限. 默认的,也称为default,在同一包内可见,不使用任何修饰符. 私有的,以pr ...

  5. java date格式化输出_Java Date类以及日期的格式化输出

    Java中的Date类用于表示日期时间,在java.util包中.虽然Date类在设计之初没有考虑到国际化,很多方法都已经被定义为过时,但是Date却是程序设计过程中经常用到的一个类.本文将说说Dat ...

  6. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  7. 使用Java 8 Lambda表达式对Employee类进行操作

    1,首先定义Employee类. package coffee.how.to.program.early.objects.chapter15;public class Employee {privat ...

  8. java中输入日期_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  9. python爬取网站教学视频_零基础Python爬取网页文章和图片详细教学(内附源码、教学视频)...

    Python爬虫,这个我相信对于很多人来说都不陌生! 今天小编给大家提供一份零基础Python爬取网页图片以及小说的代码并且详细的和大家讲解一下! 开发环境:版本Python3.6.2!(2版本会在2 ...

最新文章

  1. 【转】 ubuntu12.04更新源
  2. Lesson 8.3Lesson 8.4 ID3、C4.5决策树的建模流程CART回归树的建模流程与sklearn参数详解
  3. 6.22软件工程总结
  4. github网站证书里的别名
  5. 这份网约车安全乘车指南,请务必收下!
  6. java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常
  7. 孙悟空!登上 Nature !
  8. GridView 分页导航
  9. Helen人脸数据集生成人脸分割
  10. 知网html怎样转化成pdf,中国知网CAJ ASP文件转PDF教程
  11. 基于cropper.js封装vue在线图片裁剪组件
  12. PHP获取某一天前后任意时间
  13. 360全景偏移调整_360全景倒车系统安装及调试细节说明
  14. 红外线人体感应灯arduino_Arduino红外人体感应模块-电子芯吧客
  15. Pig 调优实践经验总结
  16. 华为P10手机有计算机功能吗,手机教程知识:华为P10支持NFC功能吗 华为P10新功能介绍...
  17. 单片机c语言置位程序流程图,单片机c语言教程第十二章--C51开关分支语句
  18. SpringBoot 项目打成 .exe 程序,实战来了,超级详细!
  19. 云仓一件代发是什么?对电商商家有什么好处?
  20. 高防CDN如何防御网络攻击

热门文章

  1. grid - 隐式命名网格线名称
  2. NIO客户端主要创建过程
  3. [转] dpkg-deb命令
  4. AngularJS操作DOM——angular.element
  5. 知识点滴:持久层,DAO,API,DAL,BLL,DLL,csproj,sln
  6. 台湾邮政历史常设展重新开幕
  7. nodejs 实现文件拷贝
  8. Spring Boot入门(9)网页版计算器
  9. PostgreSQL Frontend/Backend protocol (通信协议)
  10. web.xml(8)_jsp-config