Java 数学操作类

数学操作类

Math类 数学计算操作类

类属性值

  • Math.E

    ^

  • Math.PI

    圆周率

类方法

Math类中,一切方法都是 static 型,因为Math类中没有普通属性。

round() 方法

  • 四舍五入,返回最接近int值的参数
public static int round(float a)

abs() 方法

  • 返回绝对值
public static double abs(double a)

max() 方法

  • 返回int值中较大的那个值
public static int max(int a , int b)

Random类 随机操作类

  • java.util 包中

Random() 构造

  • 创建一个新的随机数生成器

next() 方法

  • 生成下一个伪随机数
protected int next (int bits)

nextInt() 方法

  • 返回下一个伪随机数
  • nextInt(int n)
    • 返回 小于 n之内的随机数

36选7 彩票器实例

import java.util.Random;

public class TestDemo {
    public static void main(String [] args) throws CloneNotSupportedException {
        Random ran = new Random();
        int data[] = new int [7] ; //开辟一个数组
        int foot = 0 ;
        while (foot < 7) {
            int t = ran.nextInt(37); // 随机生成返回一个不大于37的数
            if (!isRepeat(data,t)) { // 查重
                data[foot ++] = t ;
            }
        }
        java.util.Arrays.parallelSort(data);
        for (int x = 0 ; x < data.length ; x ++) {
            System.out.print(data[x] + "\t");
        }
    }
    public static boolean isRepeat(int temp[] , int num) { // 查重
        if (num == 0 ) {
            return true ;
        }
        for (int x = 0 ; x < temp.length ; x ++) {
            if (temp[x] == num) {
                return true ;
            }
        }
        return false;
    }
}

大数字操作类

BigInteger 类

import java.math.BigInteger;
import java.util.Random;

public class TestDemo {
    public static void main(String [] args) throws CloneNotSupportedException {
        BigInteger big_A = new BigInteger("12345678912345678912356789");
        BigInteger big_B = new BigInteger("218372948729847298347289") ;
        System.out.println("加法操作 >>> " + (big_A.add(big_B)));
        System.out.println("减法操作 >>> " + (big_A.subtract(big_B)));
        System.out.println("乘法操作 >>> " + (big_A.multiply(big_B)));
        System.out.println("除法操作 >>> " + (big_A.divide(big_B)));
    }
}
  • 运行结果:
加法操作 >>> 12564051861075526210704078
减法操作 >>> 12127305963615831614009500
乘法操作 >>> 2695962308160819899591376721692771747399598895021
除法操作 >>> 56

BigDecimal : 大浮点数

  • BigInteger只可以保存整数,不可以保存小数(浮点数),而BigDecimal可以保存小数(浮点)数据;在BigDecimal类提供如下构造:
public BigDecimal(String val) ;
public BigDecimal(double val) ; 

Math.round()方法虽然实现四舍五入操作,但是,小数在计算的时候会自动的四舍五入

除法操作

public BigDecimal divide(BigDecimal divisor , int scale , int round);
  • BigDecimal divsor : 被除数
  • int scale:保留的小数位
  • int round:进位模式
  • 实例:*【重要内容】
import java.math.BigDecimal;

class MyMath {
    /**
     * 实现准确的位数的四舍五入操作
     * @param num 进行四舍五入操作的数字
     * @param scale 要保留的小数位数
     * @return 处理后的数据
     */
    public static double round(double num , int scale) {
        BigDecimal bigA = new BigDecimal(num) ;
        BigDecimal bigB = new BigDecimal(1) ;
        // ROUND_HALF_UP:向“最接近的”数字舍入
        // doubleValue() : 转 double 型数据
        return bigA.divide(bigB, scale , BigDecimal.ROUND_HALF_UP).doubleValue() ;
    }
}

public class TestDemo {
    public static void main(String [] args) {
        System.out.println(MyMath.round(19.224532 , 2));
        System.out.println(MyMath.round(3.1465926 , 2));
    }
}

总结:

  • Math类要清楚round()方法的缺陷
  • Random类生成随机数
  • 如果处理大量的数据量,则使用 BigInteger和BigDecimal ,两个类都属于Number的子类

原文地址:https://www.cnblogs.com/wangyuyang1016/p/11105291.html

时间: 2024-11-09 07:30:59

Java 数学操作类的相关文章

Java数据库操作类演示

只在mysql上测试过,不知道算不算好使?1. [代码][Java]代码     package org.load.demo; import java.io.IOException;import java.util.List;import java.util.Map; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRe

Java原子性操作类应用

Java5的线程并发库中,提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值(更新)操作 java.util.concurrent在并发编程中很常用的实用工具类. |----locks为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器 |----atomic类的小工具包,支持在单个变量上解除锁的线程安全编程.可以对基本类型.数组中的基本类型.类中的基本类型等进行操

Java文件操作类效率对比

前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向字符流的:FileWriter 和 BufferedWriter 近年来发展出New I/O ,也叫NIO,里面又包装了两个类:NewOutputStream 和 NewBufferedWriter 现在,我们建立测试程序,比较这些类写入文件的性能. 机器配置 Processor Name: Int

Java集合操作类Collections的一些常用方法

public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(34); list.add(55); list.add(56); list.add(89); list.add(12); list.add(23); list.add(126); System.out.println(list); //对集合进行排序 Collections.sort(lis

Java路径操作具体解释

1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或文件夹在硬盘上真正的路径.(URL和物理路径)比如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://www.sun.com/index.htm也代表了一个 URL绝对路径. 相对路径:相对与某个基准文件夹的路径.包括Web的相对路径(HTML中的相对文件夹),比如:在 Servlet中."/"代表Web应用的根文件夹.和物理路径的相对表示.比如:". /" 代表当前文件

Java路径操作详解

1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://www.sun.com/index.htm也代表了一个 URL绝对路径. 相对路径:相对与某个基准目录的路径.包含Web的相对路径(HTML中的相对目录),例如:在 Servlet中,"/"代表Web应用的根目录.和物理路径的相对表示.例如:". /" 代表当前目录, &q

数字(数学)操作类 Math Random 类 ,大数字操作类

Math 提供了大量的数学操作方法 Math类中所有的方法都是static 方法 重点看这个操作,四舍五入 System.out.println(Math.round(-16.5)) ; -16 System.out.println(Math.round(16.5)) ; 17 大于等于0.5进位. Random类 取得随机数的类 java.util 包 产生100之内的随机整数 Random rand = new Random() ; for(int x = 0 ; x < 10 ; x ++

java学习笔记——大数据操作类

java.math包中提供了两个大数字操作类:BigInteger(大整数操作类) BigDecimal(大小数操作类). 大整数操作类:BigInteger BigInteger类构造方法:public BigInteger(String val) 常用方法:public BigInteger add(BigInteger val) public BigInteger subtract(BigInteger val) public BigInteger multiply(BigInteger

java.util.Math类--数学相关的工具类

Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double num);获取绝对值.有多种重载: public static double ceil(double num);向上取整. public static double floor(double num);向下取整. public static long round(double num);四舍五入.