zoukankan      html  css  js  c++  java
  • Java常用类--数字常用类

    • math

    java提供了基本的 + - * / %等基本算术运算的运算符,但对于更复杂的数学运算比如:三角函数,对数运算,指数运算就无能为力了。Java提供了Math工具类来完成这些复杂的运算,Math是一个工具类,他的构造器被定义成了private,所以无法创建Math类的对象。Math所有的方法都是类方法,可以直接通过类名来调用他们。此外,Math还提供了2个属性,PI  E。这个类用的不多,这里就懒得赘述了,具体的方法自己去翻API查查就好了。


    • Random
    Random专门用来生成一个伪随机数。 
    import java.io.IOException;
    import java.util.Random;
    
    public class Linkin 
    {
        public static void main(String[] args) throws IOException 
        {
          Random random = new Random();
          //在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
          System.out.println(random.nextInt(5));
          //为了避免2个Random对象产生相同的数字序列,通常推荐使用当前时间未做Random对象的种子。
          Random random1 = new Random(System.currentTimeMillis());
          //多线程环境下,使用ThreadLocalRandom
          ThreadLocalRandom threadLocalRandom = new ThreadLocalRandom();
          //生成一个0到5的伪随机整数
          int huhu = threadLocalRandom.nextInt(0,5);
        }
    
    }
    

    随机数我们知道用Random就成,但如果我们不进行封装的话,恐怕每次都要至少写2行代码才行,但commons-lang却替你封装好了,每次生成随机数,只需像如下这样调用即可:

    RandomUtils.nextInt()

    只需一行。


    • Bigdecimal
    使用float double2种类型时,容易引起精度丢失。

    双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Javajava.math包中提 供的APIBigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。


    构造器  描 述 

    BigDecimal(int)创建一个具有参数所指定整数值的对象。 

    BigDecimal(double)创建一个具有参数所指定双精度值的对象。 

    BigDecimal(long)创建一个具有参数所指定长整数值的对象。 

    BigDecimal(String)创建一个具有参数所指定以字符串表示的数值的对象。



    方 法描 述 

    add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 

    subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 

    multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 

    divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 

    toString()BigDecimal对象的数值转换成字符串。 

    doubleValue()BigDecimal对象中的值以双精度数返回。 

    floatValue()BigDecimal对象中的值以单精度数返回。 

    longValue()BigDecimal对象中的值以长整数返回。 

    intValue()BigDecimal对象中的值以整数返回。 


    注意,由于一般数值类型,例如double,不能准确地代表16位有效数以上的数字,在使用BigDecimal时,应用 BigDecimal(String)构造器创建对象才有意义。另外,BigDecimal所创建的是对象,我们不能使用传统的+-*/等算术运算 符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。 

     

    eg:

    两个BigDecimal  类型的数据相乘:

    BigDecimal       new   BigDecimal(15124); 
             BigDecimal       new   BigDecimal(15124); 
             BigDecimal       a.multiply(b);


  • 相关阅读:
    xib上的控件属性为什么要使用weak
    authenticating with the app store 一直卡住--问题记录
    ios-tableview加载卡顿的解决方案
    魔链的参考文档--移动应用之deeplink唤醒app
    iOS中Category和Extension 原理详解
    剑指offer 9-10:青蛙跳台阶与Fibonacii数列
    剑指offer 8:旋转数组的最小数字
    设计模式:单例模式(singleton)
    设计模式:工厂模式
    C++智能指针解析
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233134.html
Copyright © 2011-2022 走看看