java Math类
原文 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类相关推荐
- java math 类_Java Math类静态长轮(double d)示例
java math 类 数学课静态长回合(双D) (Math Class static long round(double d) ) This method is available in java. ...
- java math 类_Java Math类静态双层(double d)示例
java math 类 数学班静态双层(双D) (Math Class static double floor(double d)) This method is available in java. ...
- java Math类的常用方法介绍
java Math类的常用方法介绍 代码块 public class MainTest {public static void main(String[] args) {//求sin值double s ...
- Java Math类的常用方法
在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等.Math 类位于 java.lang 包,它的构造方法是 private 的,因此无法创建 ...
- java -Math类
Math类 概念 Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数.对数.平方根和三角函数. 类似这样的工具类[L1] ,其所有方法均为静态方法,并且一般不会创建对象.如Syste ...
- Java Math 类中的新功能--浮点数
Java™语言规范第 5 版向 java.lang.Math和 java.lang.StrictMath添加了 10 种新方法,Java 6 又添加了 10 种.这个共两部分的系列文章的 第 1 部分 ...
- Java Math类toDegrees()方法与示例
数学类toDegrees()方法 (Math class toDegrees() method) toDegrees() method is available in java.lang packag ...
- Java Math类静态double ceil(double d)与示例
数学班双胞胎(double d) (Math Class double ceil(double d)) This method is available in java.lang package. 此 ...
- (JAVA)Math类
package com.book.lite;import java.util.regex.Matcher;/*** @author zhangyu* @date 2021年08月19日 11:34 下 ...
最新文章
- 【EventBus】事件通信框架 ( 发送事件 | 根据事件类型获取订阅者 | 调用订阅方法 )
- mysql使用从c3p0_使用c3p0連接池操作mysql數據庫中文亂碼解決辦法
- (转)RemoteView 设置控件属性
- Android无线调试出现错误的解决方法
- openjpa_以编程方式向OpenJPA注册实体类型
- QComboBox 样式设置
- idea创建java项目目录结构_用IDEA创建一个简单的Maven的JavaWeb项目
- Windows下C语言网络编程快速入门
- 现在,你可以撸机器猫了
- android之sqlite增、删、改,查
- shell循环读文件 Linux脚本读文件
- MATLAB 求一个矩阵的最大值极其所在位置
- java图片文字识别_java初探Tess4j识别图片文字
- 计算机类专业及行业认识,我对于计算机行业的看法
- java计算机毕业设计网上图书销售系统源程序+mysql+系统+lw文档+远程调试
- 对数据中心动环监控系统的认识
- sony相机二次开发sdK C语言,sdk与开放API协议支持二次开发的摄像头
- echart4.0 map支持dataset实例
- 如把联想电脑计算机图标放在桌面上,桌面无“我的电脑”图标
- 如何免费使用正版win10系统