一、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. Spring MVC测试框架

    原文链接:http://jinnianshilongnian.iteye.com/blog/2004660 Spring MVC测试框架详解——服务端测试 博客分类: springmvc杂谈 spri ...

  2. jedisClient操作redis实现增删改查功能

    这个集群环境下和单机环境下: package com.taotao.sso.dao.impl; import org.springframework.beans.factory.annotation. ...

  3. Flask script 内的Shell 类 使用

    1.集成Python shell 每次自动shell会话都要导入数据库实例和模型,很烦人.为了避免一直重复导入,我们可以做些配置让Flask-Script的Shell命令自动导入特定的对象.若想把对象 ...

  4. vue 获取后端数据打印结果undefined问题

    今天做项目时后端有一个要展示到页面上的附件需要前端获取,我获取到了那个附件的信息,但打印fj.name或fj.url时控制台就会显示undefined,后来才发现是json数据没有解析对,应该使用JS ...

  5. htm、html、shtml网页区别

    htm.html.shtml网页区别 html或者htm是一种静态的页面格式,也就是说不需要服务器解析其中的脚本,或者说里面没有服务器端执行的脚本,而shtml或者shtm由于它基于SSI技术,当有服 ...

  6. [转载]HTML5 真的会消灭原生App吗?

    http://mp.weixin.qq.com/s?__biz=MzA5NjQ4MzkyMw==&mid=201728945&idx=1&sn=8f43b5bb10695efc ...

  7. 程序员与HR博弈之:有城府的表达你的兴趣爱好

    “面试”这个过程说简单其实也能很简单.譬如急需招某种技能的单位会因为你拥有某方面的经验或特长立马录取你,哪怕你其他方面表现的很“烂”. 从广义上来讲,很多公司尤其是大中型公司的招聘,并不是因为急缺某岗 ...

  8. Docker学习笔记五 仓库

    本文地址:https://www.cnblogs.com/veinyin/p/10452224.html  以下均为命令行下操作 登录登出 docker login // 登录 docker logo ...

  9. 第13月第10天 swift3.0

    1. Type 'Any' has no subscript members 这一条简直莫名其妙.大体意思就是,你这个类型"Any"不是个数组或者字典,不能按照下标取东西. 我之前 ...

  10. 重启虚拟目录或站点,不重启iis

    更改站点或虚拟目录的.net Framework 版本会导致重启整个iis服务,所以需要单独重启某个站点或虚拟目录 首先右键点击网站-所有任务-将配置保存到一个文件,从文件中查找到 Location ...