Java常用数学类和BigDecimal
笔记:
Math类
* java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。
* abs 绝对值
* acos,asin,atan,cos,sin,tan 三角函数
* sqrt 平方根
* pow(double a,doble b) a的b次幂
* log 自然对数
* exp e为底指数
* max(double a,double b)
* min(double a,double b)
* random() 返回0.0到1.0的随机数
* long round(double a) double型数据a转换为long型(四舍五入)
* toDegrees(double angrad) 弧度—>角度
* toRadians(double angdeg) 角度—>弧度
* ------------------------------------------------------
BigDecimal类
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数。
构造器
public BigDecimal(double val)
public BigDecimal(String val)
常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
//Scale 表示保留的位数,
在roundingMode中,ROUND_HALF_UP表示向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
ROUND_HALF_DOWN , 舍弃部分> 0.5进1
ROUND_HALF_EVEN 银行家舍入法 ,向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
---------------------------------------------------------------------
public class Test_Math {
@Test
public void testBigInteger(){
BigInteger bi = new BigInteger("12433241123");
BigDecimal bd = new BigDecimal("12435.351");
BigDecimal bd2 = new BigDecimal("11");
System.out.println(bi);
//System.out.println(bd.divide(bd2));
System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP)); //>=0.5进1
System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_DOWN)); //>0.5进1
System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_EVEN));
} }
Java常用数学类和BigDecimal的更多相关文章
- Java学习——BigInteger类和BigDecimal类
Java学习——BigInteger类和BigDecimal类 摘要:本文主要学习了用于大数字运算的BigInteger类和BigDecimal类. 部分内容来自以下博客: https://www.c ...
- JavaEE-实验一 Java常用工具类编程
该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1. 使用类String类的分割split 将字符串 “Solutions to selected exercises ca ...
- 算法笔记--java的BigInteger类及BigDecimal类
引包:import java.math.*; BigInteger类: 可以使用构造方法:public BigInteger(String val),或者valueOf(int)函数,如: BigIn ...
- java常用日期类总结
java 常用的日期类有三个Date.SimpleDateFormat.Calendar
- Java常用工具类题库
一. 填空题 在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是___Number__的直接子类. 包装类Inte ...
- Java基础__Java中常用数学类Math那些事
测试 package Cynical_Gary; public class Cynical_Text { public static void main(String[] args){ System ...
- JAVA常用工具类汇总
一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...
- Java常用工具类---XML工具类、数据验证工具类
package com.jarvis.base.util; import java.io.File;import java.io.FileWriter;import java.io.IOExcepti ...
- java常用工具类(二)
1.FtpUtil package com.itjh.javaUtil; import java.io.File; import java.io.FileOutputStream; import ja ...
随机推荐
- docker 概念
前言: docker是一个开源的应用容器引擎,让开发这可以打包他们的应用以及依赖包到一个可以移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,互相之间不会有 ...
- 【miscellaneous】基于gstreamer的实时转码
目标是实现一个实时转码,可用于IPTV提供节目源.相关工作在ubuntu操作系统下进行.需要对源代码进行修改的时候,直接采用apt-get source命令获取源代码,根据需要进行修改,然后安装,这样 ...
- windows下进程与线程
windows下进程与线程 Windows是一个单用户多任务的操作系统,同一时间可有多个进程在执行.进程是应用程序的运行实例,可以理解为应用程序的一次动态执行:而线程是CPU调度的单位,是进程的一个执 ...
- 高级UI-RecyclerView头部和尾部添加
在ListView中,可以添加头部和尾部,其添加方法也是十分的简单,直接调用listview.addHeaderView(view);和listview.addFooterView(view);即可, ...
- jquery换一批的写法
jquery换一批的写法 <pre> <img src="{$yuming}/images/3/huanyipi.png" alt="" cu ...
- React学习,搭建项目,入门
react项目基于node.js.用npm包管理工具; 在cmd命令行中输入: npm install -g create-react-app 等待其安装,意思是全局安装create-react-ap ...
- javascript策略模式的应用!
最近在看<JavaScript设计模式与开发实践>这本书,受益匪浅,小记录一下书中的各个demo,加深理解: 策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替 ...
- 【CodeForces】1172E. Nauuo and ODT
题解 看了一遍题解(以及代码)但是没写代码-- 后来做梦的时候忽然梦到了这道题--意识到我需要补一下-- 这道题就是,对于每种颜色,把没有染成这种颜色的点标成黑点,然后计算每个联通块的平方 然后每个点 ...
- Swoft2.x 小白学习笔记 (二) --- mysql、redis
介绍swoft中 1.mysql. 2.Redis 一.mysql使用: 1.配置,在 app\bean.php文件中 'db' => [ 'class' => Database::cla ...
- yii2中通过migration创建数据表
### yii2中通过migration创建数据表 准备工作: 1.首先保证php写入了环境变量 2.在项目内创建migrations目录(base版的需要手动创建) 3.配置文件中正确配置了数据库信 ...