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.05000000000000000277555756156289135105907917022705078125
0.05
0.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(运算中小数保留的方式)

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则向下舍
注:这些roundingMode都是BigDecimal类定义的静态变量,且为final变量

java学习总结(16.07.16)Random类和BigDecimal类相关推荐

  1. Java——BigInteger类和BigDecimal类

    Java--BigInteger类和BigDecimal类 摘要:本文主要学习了用于大数字运算的BigInteger类和BigDecimal类. 部分内容来自以下博客: https://www.cnb ...

  2. JAVA基础再回首(十三)——BigInteger类、BigDecimal类、Date类、DateFormat类、Calendar类

    JAVA基础再回首(十三)--BigInteger类.BigDecimal类.Date类.DateFormat类.Calendar类 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://b ...

  3. 15.Java-正则表达式、Pattern和Matcher类、Math类、Random类、System类、BigDecimal类、BigInteger类

    15.Java-正则表达式.Pattern和Matcher类.Math类.Random类.System类.BigDecimal类.BigInteger类 一.正则表达式的概述和简单使用 A:正则表达式 ...

  4. 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)

    JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...

  5. Java面试知识点:Object类、Math类、BigDecimal类、自动装箱、拆箱

    问题:Java面试知识点:Object类.BigDecimal类.自动装箱.拆箱 答案: 1.Object类: 代码如下: package com.xy;/*** @ProjectName: day0 ...

  6. Java快速入门到精通—大数字运算(BigDecimal 类)

    在Java中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类.这两个类用于高精度计算,其中BigInteger 类是针对整型大 ...

  7. NumberFormat类、BigInteger类和BigDecimal类-JAVA

    JAVA数学计算函数的总结 提示:以下是本篇文章正文内容,下面案例可供参考 1.NumberFormat类: (public abstract class NumberFormat extends F ...

  8. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定 2016年05月11日 11:20:08 阅读数:6336 一. 计算机的小数计算一定范围内精确,超过范围只能 ...

  9. 4、大数字运算(BigInteger类和BigDecimal类)

    在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类.这两个类用于高精度计算,其中 BigInteger 类是针对 ...

最新文章

  1. 一文搞懂select语句在MySQL中的执行流程!
  2. 企业路由器应用——DMZ口
  3. Qt / QMainWindow、QDialog、QWidget
  4. mysql udb_MySQL InnoDB的一些参数说明
  5. MySQL高可用架构对比
  6. java中的Volatile 变量
  7. Android Studio Xposed模块编写(二)
  8. java setstate,5.state更新流程(setState里到底发生了什么)
  9. 弥散阴影html,三步制作出这种精美弥散阴影
  10. 搭建属于自己的家庭私有云盘
  11. LabVIEW编程LabVIEW控制PXI-5122例程与相关资料
  12. ​杨利伟:在《太空一日》:我没有看到长城,但祖国的各个省份我大都看到了...
  13. indesign怎么拼图_用R来拼图和排版,告别AI和PS(二):调节宽度和高度
  14. 领航机器人广告段子_“满屏尽是段子手”,喜剧综艺如何从“笑声”中突围?...
  15. pandas 根据筛选条件对指定excel列进行筛选
  16. 统计学习 EM算法 Python实现
  17. sql注入绕过姿势--骚姿势大全
  18. 马云称自己的成就无关科技与钱;任正非:外籍员工可当华为 CEO,但有条件;雅虎宣布逐步关闭雅虎群组网站 | EA周报...
  19. 小程序-一夜狼人杀-使用说明(新增酒鬼)
  20. 5G跟人工智能有关系吗?

热门文章

  1. 松原计算机等级考试试题,2019年上半年吉林省松原市计算机等级考试注意事项...
  2. 机器学习项目(五) 电影推荐系统(五)Criteo Ctr
  3. H3C模拟器中文路径问题(提示:“当前系统用户名中包含非ASCII字符”! )方法尝试:
  4. NO_PROXY is not set
  5. 三十二个vbs整蛊代码,快去发给你的好朋友
  6. 整理了60个Python小例子,拿来即用!
  7. First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception
  8. java版Spring Cloud+b2b2c多商户分布式微服务
  9. Google Earth Engine(GEE)——MODIS 影像LST地表温度随时间变化的趋势案例分析
  10. 工作经验这样写,面试就有了!