一、Math类(主要封装算数运算的静态方法)

定义:

Math是没有构造方法的.

java语言中提供了一个执行数学基本运算的Math类,Math类包括常用的数学运算和一些数学函数。还提供了一些常用的常量,PI, E等。

Math类中提供了许多数学函数算法,这些函数都被定义为static形式

调用起来也方便:

Math.数学方法

Math.PI

Math.E

常用的数学运算方法

1.三角函数

正弦:public static double sin(double a);

余弦:public static double cos(double a);

正切:public static double tan(double a);

反正弦:public static double asin(double a);

反余弦:public static double acos(double a);

反正切:public static double atan(double a);

角度转弧度:public static double toRadians(double angdeg);

弧度转角度:public static double toDegrees(double angdeg);

简单示例几个:

Math.max():较大数

Math.min():较小数

Math.ceil():不小于最小的数

Math.floor():不大于最大的数

Math.round():四舍五入

二、随机数

Math.random()

默认生成0.0~1.0的double型随机数。

Math类的random()方法也可以随机生成随机字符
(char)('a'+Math.random()*('z'-'a'+1));      (a~z)

(char)(char1+Math.random()*(char2-char1+1));  (A~Z)

Random类:(主要用于产生随机数)

除了Math类的random()方法可以获取随机数之外,Random类也可以获取随机数。

Random r=new Random();

Random r=new Random(seedValue);
 r:Random对象。

seedValue:随机数生成器的种子。

常用的方法:

public int nextInt():返回一个随机整数

public int nextInt(int n):返回大于0小于n的随机整数。

public long nextLong():返回一个随机长整型

public boolean nextBoolean():返回一个随机布尔型值

public float nextFloat():返回一个随机浮点型值

public double nextDouble():返回一个随机双精度型值

public double nextGaussian():返回一个概率密度为高斯分布的双精度值

练习:

 public static void main(String[] args) {
//1、试随机产生一个4位数
//返回指定位数的随机数的公式:(int)(Math.random) * (最大数—最小数) +最小数
int num = (int)(Math.random() * (9999-1000) + 1000);
System.out.println(num);//输出随机四位整数
//2、返回不大于546.2134的最大整数
int num1 = (int) Math.floor(546.2134);
System.out.println(num1);//546
//3、返回大于123.1123的最小整数
int num2 = (int)Math.ceil(123.1123);
System.out.println(num2);//124
//4、从“a,b,c,d…z,A,B,C,….,Z”随机取4个字母在控制台上显示
String s = "QWERTYUIOPASDFGHJKLZXCVBNMzxcvbnmasdfghjklqwertyuiop";
char[] c = s.toCharArray();
Random random = new Random();
for(int i=1 ;i<5;i++) {
System.out.print(c[random.nextInt(c.length)]);//随机生成四位字母
}
}

三、大数值

大数值有两种类型的BigInteger和BigDecimal

BigInteger:int,long无法表示的大整数

BigDecimal:float,double无法表示的大浮点数

Java—Math类和随机数类的更多相关文章

  1. [19/03/18-星期一] 常用类_Math(数学)类&Rondom(随机数)类

    一.Math(数学)类(单独一个Java.Math 包中) java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型.如果需要更加强大的数学运算能力, ...

  2. Java基础教程——Random随机数类

    Random类 java.util.Random类用于产生随机数.需要导入包: import java.util.Random; 方法 解释 Random() 创建一个Random类对象 Random ...

  3. Java常用类之【Math类、Random类、System类、Runtime类】

    一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...

  4. Java中的大数处理类BigInteger和BigDecimar浅析

    这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; BigInteg ...

  5. BIgInteger类和BigDecimal类的理解

    第一部分: 这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; Bi ...

  6. Java学习笔记26(Math类、Arrays类、BigInteger类、BigDecimal类)

    Math类:数学工具类,做一些数学计算,开方,对数,三角函数等 所有方法都是静态方法,不需要建立对象,直接用类名调用即可 示例: 这里写几个在日常开发中会用到的,比如三角函数之类的平时不会用到,了解即 ...

  7. Java基础(四):Java Number & Math 类、Character 类、String 类、StringBuffer & StringBuilder 类

    一.Java Number & Math 类: 1.Number类: 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等.然而,在实际开发 ...

  8. 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类

    Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...

  9. 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)

    1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则)     * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...

随机推荐

  1. pthread_detach

    http://blog.csdn.net/scanery/article/details/7241890   感谢作者! 近来发现 在线程函数第一行调用 pthread_detach(pthread_ ...

  2. [Spring] 学习Spring Boot之一:基本使用及简析

    一.简介 使用 Spring Boot 目的主要是用来简化 Spring 应用的搭建及开发过程,因为使用 Spring 及 SpringMVC 框架时需要手动配置的地方非常多(各种包之间的依赖.各种配 ...

  3. 基于docker的spark-hadoop分布式集群之一: 环境搭建

    一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...

  4. 数据结构(三)串---BF算法(朴素模式匹配)

    (一)BF算法了解 BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法.BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T ...

  5. SQL语句(六)成批导入导出数据

    (六) 成批导入导出数据 假设已经存在teaching数据库, 存在一张Student表,如图: 右键teaching->任务->导入数据 下一步->数据源(Microsoft Ex ...

  6. ngx_lua_API 指令详解(六)ngx.thread.spawn、ngx.thread.wait、ngx.thread.kill介绍

    摘要:通过lua-nginx-module中的ngx.thread同时执行多个任务. ngx_lua中访问多个第三方服务 ngx_lua中提供了ngx.socket API,可以方便的访问第三方网络服 ...

  7. [C]语法, 知识点总结(一. 进制, 格式化输入/出, 指针)

    进制 概念: n进制, 最大的数是n-1, 逢n进1位. 数据类型 概念: 其实就是占的位数不同, 转换到计算机当中都是0和1. 常用: 类型名 占字节数 描述 char 1字节=8个二进制位 字符类 ...

  8. html5 canvas文本处理

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 按esc键 关闭模态框

    <!-- help start --> <div class="modal fade" id="myModal" tabindex=" ...

  10. 转:存储之直连存储Dell Powervault MD 3000

    存储之直连存储DellPowervault MD 3000 存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储 1.封闭系统的存储:封闭系统主要指大型机,AS400等服务器 2.开放系统的存储 ...