Java--Math类和Random类

news2025/1/10 11:58:38

1.Math类简介

1.Math类中提供了大量用于数学运算的相关方法。
2.Math类是使用final修饰的终结类,不能产生子类
3.Math类中的方法都是static修饰的静态方法,可以通过类名.方法名直接调用

2.Math常用方法

1.abs(int):求绝对值(int,long,float,double做为参数)
2.ceil(double):求大于等于给定值的最小整数值,以double类型返回
3.floor(double):求小于等于给定值的最大整数值,以double类型返回
4.max(int,int):求两个数字中最大的值(int long float double做为参数)
5.min(int,int):求两个数字中最小的值(int long float double做为参数)
6.random():获取一个0到1之间的随机小数
7.round(float|double):返回int或long,采用四舍五入法,获取最接近的整数值
8.sqrt(double):获取平方根,如果传值为负数,返回NaN
9.pow(double,double):求一个数的N次方
10.sin(double)/cos(double)/tan(double):获取给定弧度值的三角函数值

 看看案例

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.abs(5));
        double ceil = Math.ceil(-3.5);
        System.out.println(ceil);
        double floor = Math.floor(-3.5);
        System.out.println("floor = " + floor);
       int max = Math.max(12, 5);
        System.out.println("max = " + max);
        int min = Math.min(12, 5);
        System.out.println("min = " + min);
        double d=3.5415;
        long round = Math.round(d);
        System.out.println(round);
       int x=-2;
        double sqrt = Math.sqrt(x);
        System.out.println(sqrt);
        //Not a Number
       double pow = Math.pow(5, 3);
        System.out.println("pow = " + pow);

    }
}


运行结果

 

3.Random类

3.1Random简介

ava.util下有一个Random类,根据随机算法的起源数字(种子)进行一些迭代变化,来产生随机数。
虽然Random类产生的数字是随机的,但在相同种子数下的相同次数产生的随机数是相同的(伪随机数)

3.2Random构造方法

Random():以系统自身的时间为种子类来构造Random对象
Random(long):可以自己来选定具体的种子数来构造Random对象

3.3Random常用方法

nextInt():获取int类型的随机数
nextInt(int):获取0(包含)到给定值(不包含)之间的随机数
nextlong():获取long类型的随机数
nextfloat():获取一个随机单精度浮点数0到1之间
nextDouble():获取一个随机双精度浮点数 0到1之间
nextBoolean(): 返回一个随机boolean类型的值,true或false,概率相同

案例

public class Test {
    public static void main(String[] args) {
        Random random=new Random();
        int i=random.nextInt();
        System.out.println(i);
        //伪随机数验证
       Random random1=new Random(100);
        Random random2=new Random(100);
        int num=random.nextInt();
        int num1=random1.nextInt();
        System.out.println("num = " + num);
        System.out.println("num1 = " + num1);
        Random random3=new Random();
        int i1=random.nextInt(2);//获取一个0(包含)到2(不包含)之间的数字
        System.out.println(i);
        long l = random.nextLong();
        System.out.println("l = " + l);
        float v = random.nextFloat();
        double v1 = random.nextDouble();
        float v2 = random.nextFloat();
        System.out.println("v = " + v);
        double v3 = random.nextGaussian();
        boolean b = random.nextBoolean();
        System.out.println(b);

    }
}

 

运行结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.1 系统模块划分探讨

一.指导思想 系统模块划分是指将一个系统按照功能或业务进行划分,以便于组织和管理系统的开发、维护和扩展。 一般来说,系统模块划分可以根据业务功能、技术层次和逻辑关系等方面进行。 二.理解业务领域 分析业务需求 要分析…

Java的一些补充性介绍

目录 什么是JDK,JRE 快速入门 学习路线: 如何快速掌握技术或知识点: IDEA 常用快捷键 IDEA创建项目、模块、包、类 模板/自定义模板 包 包的命名:​编辑 常用的包 如引入包 断点调试(debug)​编辑 多线程:…

西南交通大学【操作系统实验1】

实验目的 通过本实验了解Linux系统的组织和行为,观察各种存储系统状态信息的内核变量熟悉这些结构和信息 实验内容 理解Linux操作系统以及./proc文件熟悉codeblocks,学习Linux下c程序调试技术根据给定的程序观察cpuinfo/version/stat/uptime编程实现对…

泛微证券行业数据中心方案:打造多样化的数据收集、汇总、分析、决策一体化报表

证券企业在日常办公、业务开展时,涉及了诸多数据需求,而且数据来源于多部门、多个系统。需要对数据获取、汇总、展现进行高效、可视化的操作,高效利用数据价值,助力企业运营更高效、风险更可控。 泛微基于证券行业数字经营分析的需…

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号:Qt 学…

12个Console命令,让js调试更简单

Console 对象用于 JavaScript 调试。JavaScript 原生中默认是没有 Console 对象,这是宿主对象(也就是浏览器)提供的内置对象。 用于访问调试控制台, 在不同的浏览器里效果可能不同。 Console 对象常见的两个用途: 显示网页代码运…

SAP STO跨公司间转储含POD交货操作简介

STO跨公司间转储含POD交货这个业务常见于集团性的公司, 1、同一个集团下A公司和B公司都是独立的,A公司向B公司进行采购。B公司会有一张交货单,然后基于交货单进行过账,收货,开票等操作。 2、当同一个公司下不同工厂间…

微信支付,微信平台证书如何下载,如何获取平台证书 wxpay如何初次获取平台证书 java初次生成平台证书, java生成微信platform.pem

1. 场景:使用ijpay,调用获取平台证书失败。 属于初次获取平台证书。 注:做返回校验使用,不校验好像也没事,但是支付无小事,强烈建议获取平台证书,校验后做回调相关处理!!…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

学习了解 JSON Schema

在数字时代,数据的快速增长要求开发者掌握有效的管理和验证技术。JSON(JavaScript Object Notation) 是一种流行的轻量级数据交换格式,在网络编程中有广泛应用。为了应对复杂数据的挑战,JSON Schema 诞生,提…

C++九州控制地址结构else 陈述

else如同英文字义,九州qa98錪cc否则的意思,通常放在if的后面,若if的条件为真,就执行if底下大括弧围起来的程式区块,若为假,就执行else底下大括弧围起来的程式区块。 形式如下: 这个概念用于二选…

PostgreSQL Schema管理基础

Postgresql schema是什么、为什么它们很重要以及如何使用schema(模式)使您的数据库实现更加健壮和可维护?本文将介绍 Postgresql 中schema的基础知识,并通过一些基本示例向您展示如何创建它们。未来的文章将深入探讨如何保护和使用实际应用程序schema的示…

[linux]基于Ubuntu24.04原内核6.8.0升级到6.9.0

物理机操作系统: 虚拟机操作系统: Ubuntu 24.04 下载地址: https://mirror.nju.edu.cn/ubuntu-releases/24.04/ubuntu-24.04-desktop-amd64.iso VM版本信息: 内核源代码来源: https://ftp.sjtu.edu.cn/sites/ftp.kern…

Open vSwitch 守护进程的 upcall 处理(re)

一、upcall 消息的类型 在 Open vSwitch 的数据包转发流程中,如果数据包在内核空间无法完全处理(比如匹配不到流表项),就会发生 upcall 调用,将数据包从内核空间的 Datapath 模块传输至用户空间的 ovs-vswitchd 守护进…

Mybatis源码解读

MyBatis是我们工作中常见的ORM持久层框架,对于MyBatis并不能仅仅局限于会使用的阶段,更需要了解它的工作原理,想要了解原理,源码是必须要读的,这篇文章是我个人在阅读MyBatis的源码过程中的一些简单的总结,…

过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较

一、过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较: 过孔开窗是指过孔的焊环上面裸露,不盖油墨。如果做表面处理喷锡的话,焊环这里就类似于贴片焊盘上锡,可以用来焊接作用。 过孔盖油指的是via过孔的焊环上面不裸露,覆盖油墨,为避免板子使用时有短路等情况。

霍尼韦尔落地灯好用吗?书客、霍尼韦尔、柏曼护眼大路灯对比较量!

我们都知道光线无处不在,想要减少近视隐患,就不得不提一下护眼灯了,特别是经常坐在电脑前码字的上班族以及深夜还在学习的学生党这一类人群,经常用眼光线不好不仅影响视力健康,还会影响效率。而一款护眼灯能够提供柔和…

人工智能术语

1、人工智能的概念 人工智能概念,在1956年召开的达特茅斯会议上正式被提出。该会议是由信息学鼻祖克劳德.艾尔伍德.香农(ClaudeElwoodShannon)以及马文.明斯基(Marvin Minsky)、约翰.麦卡锡(JohnMcCarthy)等十位信息学、数学、计算机学的科学先驱,在美国…

红黑树的基本原理

目录 一.概念与性质 二.基本操作 1.建树 2.插入 情况一 情况二 3.查找 4.验证 三.红黑树与AVL树的比较 一.概念与性质 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根…

构建大语言模型友好型网站

以大语言模型为代表的AI 技术迅速发展,将会影响原有信息网络的方式。其中一个明显的趋势是通过chatGPT 对话代替搜索引擎和浏览器来获取信息。 互联网时代,主要是通过网站(website)提供信息。网站主要为人类阅读的方式构建的。主要…