java学习总结(16.07.16)Random类和BigDecimal类
来源:互联网 发布:网络课程尔雅官网 编辑:程序博客网 时间:2024/06/06 12:26
Random类
Random类是java中用于产生随机数的类,它有两个构造器
Random()//无参数,使用默认的数种生成伪随机数
Random(long seed) //使用指定的数种生成伪随机数
使用Random类生成伪随机数:
使用方法nextXxx()可以生成指定类型的随机数
其中nextInt方法可以指定范围
nextBytes(Byte[] Bytes) 则是生成一系列随机的Byte类型整数并存放于Byte数组Bytes中
nextGaussian()//返回随机生成的伪高斯数列中的下一个double类型的浮点数
BigDecimal类
BigDecimal类是java提供的大数字处理类,这个类解决了浮点类型数据计算时精度丢失的问题,使用BigDecimal类可以精确地对高精度数据进行运算
下面是BigDecimal类的使用方法
BigDecimal类的构造器
BigDecimal类的构造器有三个:
public BigDecimal(double val) //不推荐使用这个构造器,因为会出现精度丢失
public BigDecimal(String val) //以字符串形式将浮点数传入构造器
public static BigDecimal valueOf(double val) //这个构造器内部其实也是做了浮点数到字符串的转换
例:
package fgb;import java.math.BigDecimal;public class BigDecimalTest {public static void main(String[] args) {BigDecimal bd1=new BigDecimal(0.05);//bd1将会出现精度丢失BigDecimal bd2=new BigDecimal("0.05");BigDecimal bd3=BigDecimal.valueOf(0.05);System.out.println(bd1+"\n"+bd2+"\n"+bd3);}}
输出结果:0.050000000000000002775557561562891351059079170227050781250.050.05
BigDecimal的精度(小数点后的位数)
scale方法,返回当前BigDecimal实例的小数位数(精度)
setScale方法,设置精度(和小数保留方式)
BigDecimal类的四则运算
public BigDecimal add(BigDecimal augend) //加法
public BigDecimal subtract(BigDecimal subtrahend) //减法
public BigDecimal multiply(BigDecimal multiplicand) //惩罚
public BigDecimal divide(BigDecimal divisor) //除法,注:若所得结果的精度超出可表示范围,系统则会抛出错误 Non-terminating decimal expansion; no exact representable decimal result.
其他重载divide方法还可以指定结果的精度以及小数的保留方式,可以截去超长的小数,将结果按指定方式报流程指定精度的小数
BigDecimal类的roundingMode(运算中小数保留的方式)
BigDecimal类的roundingMode(运算中小数保留的方式)
roundingMode是指BigDecimal类运算时保留小数的方式,setScale方法和divide方法都可以指定roundingMode
roundingMode有如下几种:
BigDecimal.ROUND_DOWN直接删除多余的小数位,如2.35会变成2.3
BigDecimal.ROUND_UP进位处理,2.35变成2.4
BigDecimal.ROUND_HALF_UP四舍五入,2.35变成2.4
BigDecimal.ROUND_HALF_DOWN五舍六入,2.35变成2.3,如果是5则向下舍
BigDecimal.ROUND_UP进位处理,2.35变成2.4
BigDecimal.ROUND_HALF_UP四舍五入,2.35变成2.4
BigDecimal.ROUND_HALF_DOWN五舍六入,2.35变成2.3,如果是5则向下舍
注:这些roundingMode都是BigDecimal类定义的静态变量,且为final变量
0 0
- java学习总结(16.07.16)Random类和BigDecimal类
- 11. JAVA常用类库 Part 3 (Math类、Random类、NumberFormat类、BigInteger类和BigDecimal类) ----- 学习笔记
- java 大数类 总结 整数小数(BigInteger和BigDecimal)
- JAVA学习总结之Random类
- Java常用类库--Math、Random、NumberFormat、DecimalFormat、BigInteger、BigDecimal
- 类 java.math.BigDecimal 总结
- 类 java.math.BigDecimal 总结
- JavaSE----API之常用类(Math、Random、System、BigInteger和BigDecimal、Date和DateFormat、Calendar)
- Java Random类学习
- 14. 正则表达式和常见类 (Math、Random、System、BigInteger、BigDecimal、Date_DateFormat、Calendar)
- Java 之 BigDecimal类学习
- Java中正则表达式和常用的Math、Random、System、BigInteger、BigDecimal、Date/DateFormat、Calendar类的使用
- JAVA学习笔记——BigInteger类和BigDecimal类
- Java中BigDecimal 和 BigInteger 类型数据操作学习总结
- Java学习笔记之常用方法类(三) Data和Calendar类、Math、BigInteger和Random类、Random类
- java学习之Random类
- Java学习之Random类
- java 学习笔记 随机数产生的两种办法Math.random()和Random类
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- linux 系统下面mariadb启动失败
- HTTPS为什么安全 &分析 HTTPS 连接建立全过程
- leetcode解题笔记:127. Word Ladder
- JPA
- java学习总结(16.07.16)Random类和BigDecimal类
- PL/SQL Developer 如何显示行号
- Android基础知识---ImageView的状态切换
- 安装scrapy各种问题
- LeetCode - 61. Rotate List
- sql语句的优化
- 运行和控制Nginx
- JavaScript实现图片轮播和鼠标悬停显示
- android架构篇mvp+rxjava+retrofit+eventBus