原文  http://blog.csdn.net/chichoxian/article/details/20923501

Java中比较常用的几个数学公式的总结:

//取整,返回小于目标函数的最大整数,如下将会返回-2
Math.floor(-1.8);
//取整,返回发育目标数的最小整数
Math.ceil() //四舍五入取整 Math.round() //计算平方根 Math.sqrt() //计算立方根 Math.cbrt() //返回欧拉数e的n次幂 Math.exp(3); //计算乘方,下面是计算3的2次方 Math.pow(3,2); //计算自然对数 Math.log(); //计算绝对值 Math.abs(); //计算最大值 Math.max(2.3,4.5); //计算最小值 Math.min(,); //返回一个伪随机数,该数大于等于0.0并且小于1.0 Math.random

Random类专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子(以当前时间作为种子),另一个构造器需要程序员显示的传入一个long型整数的种子。

Random比Math的random()方法提供了更多的方式来生成各种伪随机数。

e.g

import java.util.Arrays;
import java.util.Random;public class RandomTest {/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stub Random rand = new Random(); System.out.println("随机布尔数" + rand.nextBoolean()); byte[] buffer = new byte[16]; rand.nextBytes(buffer); //生产一个含有16个数组元素的随机数数组 System.out.println(Arrays.toString(buffer)); System.out.println("rand.nextDouble()" + rand.nextDouble()); System.out.println("Float浮点数" + rand.nextFloat()); System.out.println("rand.nextGaussian" + rand.nextGaussian()); System.out.println("" + rand.nextInt()); //生产一个0~32之间的随机整数 System.out.println("rand.nextInt(32)" + rand.nextInt(32)); System.out.println("rand.nextLong" + rand.nextLong()); } }

为了避免两个Random对象产生相同的数字序列,通常推荐使用当前时间作为Random对象的种子,代码如下:

Random  rand = new Random(System.currentTimeMillis());

在 java7 中引入了ThreadLocalRandom

在多线程的情况下使用ThreadLocalRandom的方式与使用Random基本类似,如下程序·片段示范了ThreadLocalRandom的用法:

首先使用current()产生随机序列之后使用nextCXxx()来产生想要的伪随机序列 :

ThreadLocalRandom trand= ThreadLocalRandom.current();int val = rand.nextInt(4,64);

产生4~64之间的伪随机数

public class MathDemo {  public static void main(String args[]){  /** * abs求绝对值 */  System.out.println(Math.abs(-10.4));    //10.4  System.out.println(Math.abs(10.1));     //10.1  /** * ceil天花板的意思,就是返回大的值,注意一些特殊值 */  System.out.println(Math.ceil(-10.1));   //-10.0  System.out.println(Math.ceil(10.7));    //11.0  System.out.println(Math.ceil(-0.7));    //-0.0  System.out.println(Math.ceil(0.0));     //0.0  System.out.println(Math.ceil(-0.0));    //-0.0  /** * floor地板的意思,就是返回小的值 */  System.out.println(Math.floor(-10.1));  //-11.0  System.out.println(Math.floor(10.7));   //10.0  System.out.println(Math.floor(-0.7));   //-1.0  System.out.println(Math.floor(0.0));    //0.0  System.out.println(Math.floor(-0.0));   //-0.0  /** * max 两个中返回大的值,min和它相反,就不举例了 */  System.out.println(Math.max(-10.1, -10));   //-10.0  System.out.println(Math.max(10.7, 10));     //10.7  System.out.println(Math.max(0.0, -0.0));    //0.0  /** * random 取得一个大于或者等于0.0小于不等于1.0的随机数 */  System.out.println(Math.random());  //0.08417657924317234  System.out.println(Math.random());  //0.43527904004403717  /** * rint 四舍五入,返回double值 * 注意.5的时候会取偶数 */  System.out.println(Math.rint(10.1));    //10.0  System.out.println(Math.rint(10.7));    //11.0  System.out.println(Math.rint(11.5));    //12.0  System.out.println(Math.rint(10.5));    //10.0  System.out.println(Math.rint(10.51));   //11.0  System.out.println(Math.rint(-10.5));   //-10.0  System.out.println(Math.rint(-11.5));   //-12.0  System.out.println(Math.rint(-10.51));  //-11.0  System.out.println(Math.rint(-10.6));   //-11.0  System.out.println(Math.rint(-10.2));   //-10.0  /** * round 四舍五入,float时返回int值,double时返回long值 */  System.out.println(Math.round(10.1));   //10  System.out.println(Math.round(10.7));   //11  System.out.println(Math.round(10.5));   //11  System.out.println(Math.round(10.51));  //11  System.out.println(Math.round(-10.5));  //-10  System.out.println(Math.round(-10.51)); //-11  System.out.println(Math.round(-10.6));  //-11  System.out.println(Math.round(-10.2));  //-10
    }
}  

转载于:https://www.cnblogs.com/zhaoyang-1989/p/6722427.html

java Math类相关推荐

  1. java math 类_Java Math类静态长轮(double d)示例

    java math 类 数学课静态长回合(双D) (Math Class static long round(double d) ) This method is available in java. ...

  2. java math 类_Java Math类静态双层(double d)示例

    java math 类 数学班静态双层(双D) (Math Class static double floor(double d)) This method is available in java. ...

  3. java Math类的常用方法介绍

    java Math类的常用方法介绍 代码块 public class MainTest {public static void main(String[] args) {//求sin值double s ...

  4. Java Math类的常用方法

    在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等.Math 类位于 java.lang 包,它的构造方法是 private 的,因此无法创建 ...

  5. java -Math类

    Math类 概念 Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数.对数.平方根和三角函数. 类似这样的工具类[L1] ,其所有方法均为静态方法,并且一般不会创建对象.如Syste ...

  6. Java Math 类中的新功能--浮点数

    Java™语言规范第 5 版向 java.lang.Math和 java.lang.StrictMath添加了 10 种新方法,Java 6 又添加了 10 种.这个共两部分的系列文章的 第 1 部分 ...

  7. Java Math类toDegrees()方法与示例

    数学类toDegrees()方法 (Math class toDegrees() method) toDegrees() method is available in java.lang packag ...

  8. Java Math类静态double ceil(double d)与示例

    数学班双胞胎(double d) (Math Class double ceil(double d)) This method is available in java.lang package. 此 ...

  9. (JAVA)Math类

    package com.book.lite;import java.util.regex.Matcher;/*** @author zhangyu* @date 2021年08月19日 11:34 下 ...

最新文章

  1. 【EventBus】事件通信框架 ( 发送事件 | 根据事件类型获取订阅者 | 调用订阅方法 )
  2. mysql使用从c3p0_使用c3p0連接池操作mysql數據庫中文亂碼解決辦法
  3. (转)RemoteView 设置控件属性
  4. Android无线调试出现错误的解决方法
  5. openjpa_以编程方式向OpenJPA注册实体类型
  6. QComboBox 样式设置
  7. idea创建java项目目录结构_用IDEA创建一个简单的Maven的JavaWeb项目
  8. Windows下C语言网络编程快速入门
  9. 现在,你可以撸机器猫了
  10. android之sqlite增、删、改,查
  11. shell循环读文件 Linux脚本读文件
  12. MATLAB 求一个矩阵的最大值极其所在位置
  13. java图片文字识别_java初探Tess4j识别图片文字
  14. 计算机类专业及行业认识,我对于计算机行业的看法
  15. java计算机毕业设计网上图书销售系统源程序+mysql+系统+lw文档+远程调试
  16. 对数据中心动环监控系统的认识
  17. sony相机二次开发sdK C语言,sdk与开放API协议支持二次开发的摄像头
  18. echart4.0 map支持dataset实例
  19. 如把联想电脑计算机图标放在桌面上,桌面无“我的电脑”图标
  20. 如何免费使用正版win10系统

热门文章

  1. 手机电量剩一半就充比较好,还是快没电了再充比较好?为什么?
  2. 怎么做装修预算?装修预算需要注意的三大事项
  3. 编写int testsyscall()系统调用–响应函数
  4. 系统调用表与系统调用号-=>数组与下标
  5. 要想完全放弃Windows使用Linux需要多少勇气?
  6. 专卖店荣耀magicbookpro预装系统是Linux,换商家送的U盘里win10系统有影响吗?
  7. 以太坊创世区块源码分析
  8. ecos中的spl同步机制
  9. 在SQL Server中设置最大并行度的不同方法
  10. 如何使用SQL Server主数据服务替换硬编码的查找