Java Math类方法介绍之史上最全

开发中用到了Java Math类的方法,故温习记录如下。
     /*** 常量*/System.out.println("------>" + Math.E);//2.718281828459045System.out.println("------>" + Math.PI);//3.141592653589793/*** Math.abs()计算绝对值*/System.out.println("------>" + Math.abs(-3));//3/*** 三角函数与反三角函数* cos求余弦* sin求正弦* tan求正切* acos求反余弦* asin求反正弦* atan求反正切* atan2(y,x)求向量(x,y)与x轴夹角* cosh计算值的双曲余弦* sinh计算双曲正弦* tanh计算双曲正切*/System.out.println("------>" + Math.acos(1));System.out.println("------>" + Math.acos(-1));/*** Math.cbrt()开立方根*/System.out.println("------>" + Math.cbrt(-1));//-1.0System.out.println("------>" + Math.cbrt(1));//1.0System.out.println("------>" + Math.cbrt(0.5));//0.7937005259840998System.out.println("------>" + Math.cbrt(5));//1.709975946676697/*** Math.sqrt(x)开平方*/System.out.println("------>" + Math.sqrt(4.0));//2.0/*** Math.hypot(x,y)求sqrt(x*x+y*y)在求两点间距离时有用sqrt((x1-x2)^2+(y1-y2)^2)*/System.out.println("------>" + Math.hypot(3.0, 4.0));//5.0/*** ceil天花板,向上取整,返回大的值*/System.out.println("------1>" + Math.ceil(7.2));//8.0System.out.println("------2>" + Math.ceil(7.5));//8.0System.out.println("------3>" + Math.ceil(7.6));//8.0System.out.println("------4>" + Math.ceil(-7.2));//-7.0System.out.println("------5>" + Math.ceil(-7.5));//-7.0System.out.println("------6>" + Math.ceil(-7.6));//-7.0/*** floor地板,向下取整,返回小的值*/System.out.println("------1>" + Math.floor(7.2));//7.0System.out.println("------2>" + Math.floor(7.5));//7.0System.out.println("------3>" + Math.floor(7.6));//7.0System.out.println("------4>" + Math.floor(-7.2));//-8.0System.out.println("------5>" + Math.floor(-7.5));//-8.0System.out.println("------6>" + Math.floor(-7.6));//-8.0/*** Math.cosh()返回 double 值的双曲线余弦。x 的双曲线余弦的定义是 (ex + e-x)/2,其中 e 是欧拉数*/System.out.println("------>" + Math.cosh(1));//1.543080634815244System.out.println("------>" + Math.cosh(0));//1.0/*** exp(x) 返回e^x的值* expm1(x) 返回e^x - 1的值* pow(x,y) 返回x^y的值* 这里可用的数据类型也只有double型*/System.out.println("------>" + Math.exp(2));//7.38905609893065System.out.println("------>" + Math.expm1(2));//6.38905609893065System.out.println("------>" + Math.pow(2.0, 3.0));//8.0/*** 对数* Math.log(a) a的自然对数(底数是e)* Math.log10(a) a 的底数为10的对数* Math.log1p(a) a+1的自然对数* 值得注意的是,前面其他函数都有重载,对数运算的函数只能传double型数据并返回double型数据*/System.out.println("------1>" + Math.log(Math.E));//1.0System.out.println("------2>" + Math.log10(10));//1.0System.out.println("------3>" + Math.log1p(Math.E - 1.0));//1.0/*** Math.max()求最大值* Math.min()求最小值*/System.out.println("------1>" + Math.max(1, 2));//2System.out.println("------2>" + Math.min(1, -2));//-2/*** Math.nextAfter()返回与第二个参数方向相邻的第一个参数的浮点数。*/System.out.println("------1>" + Math.nextAfter(-1, 2));//-0.99999994System.out.println("------2>" + Math.nextAfter(1, 2));//1.0000001/*** Math.nextUp()返回与正无穷大方向相邻的 d的浮点值。*/System.out.println("------>" + Math.nextUp(1));//1.0000001System.out.println("------>" + Math.nextUp(-1));//-0.99999994/*** Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,* 返回值是一个伪随机选择的数,在该范围内(近似)均匀分布*/System.out.println("------>" + Math.random());//取值范围是[0.0,1.0)的随机数/*** Math.rint(x):x取整为它最接近的整数,如果x与两个整数的距离相等,则返回其中为偶数的那一个。*/System.out.println("------>" + Math.rint(3.5));//4.0System.out.println("------>" + Math.rint(4.5));//4.0System.out.println("------>" + Math.rint(3.1));//3.0System.out.println("------>" + Math.rint(4.1));//4.0System.out.println("------>" + Math.rint(3.7));//4.0System.out.println("------>" + Math.rint(4.7));//5.0/*** Math.round(x):返回Math.floor(x+0.5),即“四舍五入”值。*/System.out.println("------>" + Math.round(3.5));//4System.out.println("------>" + Math.round(4.5));//5System.out.println("------>" + Math.round(3.1));//3System.out.println("------>" + Math.round(4.7));//5/*** Math.scalb(double d, int scaleFactor),返回 f × 2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 float* 值集合中的一个值* 返回 d 和正无穷大之间与 d 相邻的浮点值 tatic double   nextUp(double d)*/System.out.println("------1>" + Math.scalb(1.5d, 6));//96/*** Math.scalb(float f, int scaleFactor)* 返回 f 和正无穷大之间与 f 相邻的浮点值 tatic float    nextUp(float f)* 返回第一个参数和第二个参数之间与第一个参数相邻的浮点数*/System.out.println("------2>" + Math.scalb(1.5f, 6));//96/*** Math.signum方法返回指定int值的符号函数(如果指定值为负,则返回-1;如果指定值为零,则返回 0;如果指定值为正,则返回1)。*/System.out.println("------1>" + Math.signum(10));//1.0System.out.println("------2>" + Math.signum(-10));//-1.0System.out.println("------3>" + Math.signum(0));//0.0/*** Math.toDegrees()将弧度转换角度*/System.out.println("------3>" + Math.toDegrees(1.57));//89.95437383553926/*** Math.toRadians()将角度转换为弧度*/System.out.println("------3>" + Math.toRadians(90));//1.5707963267948966/*** Math.ulp()* 如果要理解什么是ulp(unit in the last place or unit of least precision (ULP))* 先要了解在计算机中保存的数和我们在数学上认为的数是不一样的;* 比方说2.0和3.0之间有多少个数,在数学中是无限的,但是在计算机中是有限的,* 因为计算机需要用一堆字节来表示double或者float,但是因为计算机表示不了无限的数(因为没有无限内存)。** 所以就有了ulp,假设在float 2.0和3.0之间有8,388,609个数,那么在2.0和3.0之间的数的ulp就是8,388,609/1.0约等于0.0000001。** 你如果想知道某一个具体的double或float的先一个或者上一个数字是什么可以使用函数* public static double nextAfter(float start, float direction)* public static double nextAfter(double start, double direction)*//*** java8 Math新增方法*/if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {/*** Math.addExact()求和,如果结果溢出取值范围,则引发异常。*/System.out.println("------>" + Math.addExact(1, 2));//3/*** Math.substractExact()方法返回两个参数之差,结果溢出时抛出ArithmeticException*/System.out.println("------>" + Math.subtractExact(100, 50));//50/*** Math.incrementExact() 方法 返回参数值加一,结果溢出时抛出ArithmeticException*/System.out.println("------>" + Math.incrementExact(100));//101/*** Math.decrementExact() 方法 返回参数值减一,结果溢出时抛出ArithmeticException*/System.out.println("------>" + Math.decrementExact(100));//99/*** Math.multiplyExact() 方法 返回两个参数之积,结果溢出时抛出ArithmeticException*/System.out.println("------>" + Math.multiplyExact(100, 5));//500/*** Math.negateExact() 方法 改变参数符号,结果溢出时抛出ArithmeticException*/System.out.println("------>" + Math.negateExact(100));//-100/*** Math.floorDiv(1,2)第一个参数除以第二参数,然后针对结果执行floor操作,返回小于或等于商的整数:*/System.out.println("------>" + Math.floorDiv(7, 3));//2System.out.println("------>" + Math.floorDiv(-7, 3));//-3/*** Math.floorMod()* 1、如果参数的符号相同,则floorMod和%运算符的结果是相同的。* 2、如果参数的符号不同,则结果与%运算符不同。*///如果参数的符号相同,则floorMod和%运算符的结果是相同的。System.out.println("------1>" + Math.floorMod(4, 3));//1System.out.println("------2>" + (4 % 3));//1//如果参数的符号不同,则结果与%运算符不同。System.out.println("------3>" + Math.floorMod(4, -3));//-2System.out.println("------4>" + (4 % -3));//1System.out.println("------5>" + Math.floorMod(-4, 3));//2System.out.println("------6>" + (-4 % 3));//-1System.out.println("------7>" + Math.floorMod(-4, -3));//-1System.out.println("------8>" + (-4 % -3));//-1/*** Math.toIntExact(),long转int*/System.out.println("------1>" + Math.toIntExact(1));/*** Math.nextDown()返回与负无穷大方向相邻的 f的浮点值。*/System.out.println("------>" + Math.nextDown(1));//0.99999994System.out.println("------>" + Math.nextDown(-1));//-1.0000001}

如果对你有帮助,麻烦评论点赞支持,谢谢!

ps:如有错误之处,烦请指教

Java Math类方法介绍之史上最全相关推荐

  1. Java NIO (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈 奉上以下珍贵的学习资源: 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 + 大厂必备 +涨薪 ...

  2. java spring框架 注解_史上最全的java spring注解

    史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...

  3. Java面试宝典(问题史上最全,总结最好)

    说明,为了减轻大家的负担和节省大家的时间,一些过时知识点和被笔试概率极低的题目不再被收录和分析. 回答问题的思路:先正面叙述一些基本的核心知识,然后描述一些特殊的东西,最后再来一些锦上添花的东西.要注 ...

  4. Java基础知识总结(史上最全)

    Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思 ...

  5. Java岗:46道史上最全Redis面试题,面试官能问的都被我找到了,金九银十有望了!

    前言 1.什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整 ...

  6. java命令主动清空jvm_JVM史上最全实践优化没有之一

    1.jvm的运行参数 在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行.绝大部分的参数保持默认即可. 1.1 三种参数类型 jvm的参数类型分为三类,分别是 : 标准参 ...

  7. 一文带你看懂JAVA IO流(一),史上最全面的IO教学啦(附送JAVA IO脑图)

    一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...

  8. Java之智力题【史上最全】

    智力题,每个正式的笔试.面试都会出,而且在面大企业的时候必然会问到,笔者曾在很多面试中,都被问到过,不过答得都不是很好,因为时间很短,加上我们有时候过于紧张,所以做出这类问题,还是有一定的难度,从这篇 ...

  9. Java常用工具类整合(史上最全)

    JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...

最新文章

  1. python计算wav的语谱图_Python实现电脑录音(含音频基础知识讲解)
  2. 做完小程序项目、老板给我加了6k薪资~
  3. [Oracle]为何Archivelog 没有马上被删除
  4. java中的深浅克隆
  5. C++ Primer 5th笔记(10)chapter10 泛型算法 :泛型算法结构
  6. AIX 磁盘和文件系统
  7. 《Google官方SEO指南》十一:以恰当的方式推广你的网站
  8. 转:精通JS正则表达式
  9. Java方法中的参数太多,第6部分:方法返回
  10. php百度搜索框代码,基于jquery的仿百度搜索框效果代码_jquery
  11. 青苹果影视系统源码v1.3.20 多功能开源影视源码
  12. 容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解
  13. 转:SQL Server 2005安装过程图解
  14. JavaScript学习(五十八)—作用域链
  15. 精通Spring Boot——第三篇:详解WebMvcConfigurer接口
  16. 5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件
  17. Observer (观察者) 模式
  18. 第十六章 python Pygame的使用
  19. r 对一列计数_根据另一列对项目进行计数
  20. growup怎么读_欧路词典|英汉-汉英词典 grow up是什么意思_grow up的中文解释和发音_grow up的翻译_grow up怎么读...

热门文章

  1. 大白菜装机版一键制作启动u盘教程
  2. 基于 B/S 架构自助点餐系统的设计与实现
  3. 自然语言处理实战:机器学习常见工具与技术
  4. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...
  5. 词嵌入向量WordEmbedding的原理和生成方法
  6. 数据库管理工具的使用
  7. 女朋友撒娇让我教她HashMap
  8. 5g cpe参数及功能介绍
  9. Wu反走样算法介绍(简单易懂) -Xiaolin Wu’s Algorithm
  10. 哥德尔:伟大的数学家与饱受精神疾病折磨的患者