Java的Math类封装了很多与数学有关的属性和方法,大致如下:

  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. System.out.println(Math.E);//比任何其他值都更接近 e(即自然对数的底数)的 double 值。
  6. System.out.println(Math.PI);//比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
  7. /*
  8. * 1.abs绝对值函数
  9. * 对各种数据类型求绝对值
  10. */
  11. System.out.println(Math.abs(-10));//输出10
  12.  
  13. /*
  14. * 2.三角函数与反三角函数
  15. * cos求余弦
  16. * sin求正弦
  17. * tan求正切
  18. * acos求反余弦
  19. * asin求反正弦
  20. * atan求反正切
  21. * atan2(y,x)求向量(x,y)与x轴夹角
  22. */
  23. System.out.println(Math.acos(-1.0));//输出圆周率3.14...
  24. System.out.println(Math.atan2(1.0, 1.0));//输出 π/4 的小数值
  25.  
  26. /*
  27. * 3.开根号
  28. * cbrt(x)开立方
  29. * sqrt(x)开平方
  30. * hypot(x,y)求sqrt(x*x+y*y)在求两点间距离时有用sqrt((x1-x2)^2+(y1-y2)^2)
  31. */
  32. System.out.println(Math.sqrt(4.0));//输出2.0
  33. System.out.println(Math.cbrt(8.0));//输出2.0
  34. System.out.println(Math.hypot(3.0, 4.0));//输出5.0
  35.  
  36. /*
  37. * 4.最值
  38. * max(a,b)求最大值
  39. * min(a,b)求最小值
  40. */
  41. System.out.println(Math.max(1, 2));//输出2
  42. System.out.println(Math.min(1.9, -0.2));//输出-0.2
  43. /*
  44. * 5.对数
  45. * log(a) a的自然对数(底数是e)
  46. * log10(a) a 的底数为10的对数
  47. * log1p(a) a+1的自然对数
  48. * 值得注意的是,前面其他函数都有重载,对数运算的函数只能传double型数据并返回double型数据
  49. */
  50. System.out.println(Math.log(Math.E));//输出1.0
  51. System.out.println(Math.log10(10));//输出1.0
  52. System.out.println(Math.log1p(Math.E-1.0));//输出1.0
  53. /*
  54. * 6.幂
  55. * exp(x) 返回e^x的值
  56. * expm1(x) 返回e^x - 1的值
  57. * pow(x,y) 返回x^y的值
  58. * 这里可用的数据类型也只有double型
  59. */
  60. System.out.println(Math.exp(2));//输出E^2的值
  61. System.out.println(Math.pow(2.0, 3.0));//输出8.0
  62.  
  63. /*
  64. * 7.随机数
  65. * random()返回[0.0,1.0)之间的double值
  66. * 这个产生的随机数其实可以通过*x控制
  67. * 比如(int)(random*100)后可以得到[0,100)之间的整数
  68. */
  69. System.out.println((int)(Math.random()*100));//输出[0,100)间的随机数
  70.  
  71. /*
  72. * 8.转换
  73. * toDegrees(a) 弧度换角度
  74. * toRadians(a) 角度换弧度
  75. */
  76. System.out.println(Math.toDegrees(Math.PI));//输出180.0
  77. System.out.println(Math.toRadians(180));//输出 π 的值
  78. /*
  79. * 9.其他
  80. */
  81.  
  82. //copySign(x,y) 返回 用y的符号取代x的符号后新的x值
  83. System.out.println(Math.copySign(-1.0, 2.0));//输出1.0
  84. System.out.println(Math.copySign(2.0, -1.0));//输出-2.0
  85.  
  86. //ceil(a) 返回大于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
  87. //可以通过强制转换将类型换成整型
  88. System.out.println(Math.ceil(1.3443));//输出2.0
  89. System.out.println((int)Math.ceil(1.3443));//输出2
  90.  
  91. //floor(a) 返回小于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
  92. System.out.println(Math.floor(1.3443));//输出1.0
  93.  
  94. //rint(a) 返回最接近a的整数的double值
  95. System.out.println(Math.rint(1.2));//输出1.0
  96. System.out.println(Math.rint(1.8));//输出2.0
  97.  
  98. //nextAfter(a,b) 返回(a,b)或(b,a)间与a相邻的浮点数 b可以比a小
  99. System.out.println(Math.nextAfter(1.2, 2.7));//输出1.2000000000000002
  100. System.out.println(Math.nextAfter(1.2, -1));//输出1.1999999999999997
  101. //所以这里的b是控制条件
  102.  
  103. //nextUp(a) 返回比a大一点点的浮点数
  104. System.out.println(Math.nextUp(1.2));//输出1.2000000000000002
  105.  
  106. //nextDown(a) 返回比a小一点点的浮点数
  107. System.out.println(Math.nextDown(1.2));//输出1.1999999999999997
  108. }
  109. }

另外,当我尝试这样使用数学类的时候是错误的:

  1. Math m = new Math();m.sqrt(4.0);

为什么呢?

查了下Math的源码,惊呆了!它的构造方法居然是这样写的:

  1. private Math() {}

构造方法写成私有的额(⊙o⊙)…

所以根本就不能创建对象啊!

后来仔细想想其实这是很合理的。

在面向对象中,类是抽象的而对象是具体的,数学本身也是抽象的而没法具体,所以这里只有一个数学类而不能实例化对象。

Java之Math类使用小结(转发)的更多相关文章

  1. Java之Math类使用小结

    Java的Math类封装了很多与数学有关的属性和方法,大致如下: public class Main { public static void main(String[] args) { // TOD ...

  2. java基础-Math类常用方法介绍

    java基础-Math类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Math类概念 Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函 ...

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

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

  4. Java-Runoob:Java Number & Math 类

    ylbtech-Java-Runoob:Java Number & Math 类 1.返回顶部 1. Java Number & Math 类 一般地,当需要使用数字的时候,我们通常使 ...

  5. Java之Math类

    概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单. 基本运算的方 ...

  6. Java.util.Math类--数学相关的工具类

    Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double ...

  7. Java关于Math类的三个取整方法

    0x01 在java的Math类中有三个关于浮点数取整数的方法,分别是ceil (向上取整) floor(向下取整) round(四舍五入) 三个方法 0x02 ceil 向上取整,取整后总是比原来的 ...

  8. Java中math类的常用函数

    Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...

  9. Java API —— Math类

    1.Math类概述         Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.  2.成员变量         public static final doubl ...

随机推荐

  1. swift3.0 保存图片到本地,申请权限

    1.info中写上 <key>NSCameraUsageDescription</key> <string>需要您的同意才能读取媒体资料库</string&g ...

  2. web开发问题汇总

    Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" content="wi ...

  3. go加密算法:CBC对称加密(一)--3DES/AES

    其实对称加密中的:DES\3DES\AES 采取的加解密步骤一致,只是小的细节不太一样.大家多看看就能写出来了 // rsao1.go package main import ( "byte ...

  4. 类型“Observable<Response>”上不存在属性“map”

    出错提示: angular2 Property 'map' does not exist on type 'Observable<Response>' 类型“Observable<R ...

  5. ruby中的respond to ?用法

    今天写脚本,遇到了这个函数,遂搜索及阅读相关代码,整理如下: respond_to 是判断是否是某个类型的方法,比如: ar = "ss" p ar.respond_to?(:to ...

  6. java常见类

  7. BZOJ1083_繁忙的都市_KEY

    题目传送门 裸的最小生成树. code: /************************************************************** Problem: 1083 U ...

  8. 长沙Uber优步司机奖励政策(12月21日到12月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. Mac安装php和redis扩展

    Mac上有特定的包管理工具homebrew,也叫brew,这里的php安装用的就是brew 1安装php brew install php@7.0. brw安装会自动管理依赖,所以不用你一个个先安装依 ...

  10. Linux tcpdump命令详解(分享文章)

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...