- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
Math
包含用于执行基本数字运算的方法Math.abs(a)
:取a的绝对值Math.sqrt(a)
:取a的平方根Math.cbrt(a)
:取a的立方根Math.max(a,b)
:取a、b之间的最大值Math.min(a,b)
:取a、b之间的最小值Math.pow(a,b)
:取a的b平方方法 | 描述 |
---|---|
abs(double a) |
返回 double 值的绝对值。 |
/*
Math.abs() 取绝对值
*/
System.out.println(7);//7
System.out.println(-7);//-7
System.out.println(Math.abs(10.3));//10.3
System.out.println(Math.abs(-10.3));//10.3
方法 | 描述 |
---|---|
sqrt(double a) |
返回 double 值的正确舍入正平方根。 |
/*
Math.sqrt();开平方根
*/
System.out.println(Math.sqrt(9));//3.0
System.out.println(Math.sqrt(16));//4.0
System.out.println(Math.sqrt(-16));//NaN
注:
开平方根的参数不能为负数。
方法 | 描述 |
---|---|
cbrt(double a) |
返回 double 值的立方根。 |
/*
Math.cbrt();开立方根
*/
System.out.println(Math.cbrt(8));//2.0
System.out.println(Math.cbrt(27));//3.0
System.out.println(Math.cbrt(-27));//-3.0
方法 | 描述 |
---|---|
max(double a, double b) |
返回两个 double 值中较大的 double 。 |
System.out.println(Math.max(2,3));//3
System.out.println(Math.max(5.3,4.6));//5.3
System.out.println(Math.max(-2.7,4));//4.0
方法 | 描述 |
---|---|
min(double a, double b) |
返回两个 double 值中较小的 double 。 |
/*
Math.min();取最小值
*/
System.out.println(Math.min(-1.8,6));//-1.8
System.out.println(Math.min(0.7,10));//0.7
System.out.println(Math.min(19,6));//6
方法 | 描述 |
---|---|
pow(double a, double b) |
返回第一个参数的值,该值是第二个参数的幂。 |
/*
Math.pow()
*/
System.out.println(Math.pow(2,0));//1.0
System.out.println(Math.pow(3,1));//3.0
System.out.println(Math.pow(2,2));//4.0
Math.ceil()
:逢余进一Math.floor()
:逢余舍一Math.rint()
:四舍五入Math.round()
:四舍五入方法 | 描述 |
---|---|
ceil(double a) |
返回大于或等于参数且等于整数的最小值 double 。 |
/*
Math.ceil()
*/
System.out.println(Math.ceil(10.2));//11.0
System.out.println(Math.ceil(9.8));//10.0
System.out.println(Math.ceil(-10.2));//-10.0
方法 | 描述 |
---|---|
floor(double a) |
返回小于或等于参数且等于整数的最大值double 。 |
/*
Math.floor()
*/
System.out.println(Math.floor(1.3));//1.0
System.out.println(Math.floor(0.8));//0.0
System.out.println(Math.floor(10.5));//10.0
System.out.println(Math.floor(-100.9));//-101.0
方法 | 描述 |
---|---|
rint(double a) |
返回与 double 值最接近的 double 值,该值等于数学整数。 |
System.out.println(Math.rint(10.1));//10.0
System.out.println(Math.rint(10.5));//10.0
System.out.println(Math.rint(10.8));//11.0
System.out.println(Math.rint(0.2));//0.0
System.out.println(Math.rint(0.5));//0.0
System.out.println(Math.rint(0.8));//1.0
System.out.println(Math.rint(-0.2));//-0.0
System.out.println(Math.rint(-0.5));//-0.0
System.out.println(Math.rint(-0.8));//-1.0
System.out.println(Math.rint(-10.2));//-10.0
System.out.println(Math.rint(-10.8));//-11.0
System.out.println(Math.rint(-10.5));//-10.0
注
:在0.5时取偶数
方法 | 描述 |
---|---|
round(double a) |
返回与参数最接近的 long ,并将关系四舍五入为正无穷大。 |
round(float a) |
返回与参数最接近的 int ,并将关系四舍五入为正无穷大。 |
System.out.println(Math.round(10.1));//10
System.out.println(Math.round(10.5));//11
System.out.println(Math.round(10.53));//11
System.out.println(Math.round(10.8));//11
System.out.println(Math.round(-10.1));//-10
System.out.println(Math.round(-10.5));//-10
System.out.println(Math.round(-10.53));//-11
System.out.println(Math.round(-10.9));//-11
注
:四舍五入,float时返回int值,double时返回long值
Math.random() 随机数,在范围 [0.0,1.0) 内随机取一个值
方法 | 描述 |
---|---|
random() |
返回带有正号的 double 值,大于或等于 0.0 且小于 1.0 。 |
System.out.println(Math.random());//[0.0,1.0)
System.out.println(Math.random()+1);//[1.0,2.0)
System.out.println(Math.random()*10);//[0.0,10.0)
System.out.println(Math.random()*10+1);//[1.0,11.0)
System.out.println(Math.random()*100+0.5);//[0.5,100.5)
注
:返回类型为double类型。
Math.sin()
:正弦Math.cos()
:余弦Math.ten()
:正切public static double sin?(double a)
返回角度的三角正弦值。 特别案例:
参数 :
(一周的弧度数为2πr/r=2π,360°角=2π弧度,因此,1弧度约为57.3°,即57°17’44.806’’,1°为π/180弧度)
double PI = Math.PI;//double值比任何其他 pi更接近,圆的圆周与其直径的比率。
System.out.println(Math.sin(0));//0.0
System.out.println(Math.sin(6.28));//-0.0031853017931379904
System.out.println(Math.sin(9.42));//0.0047779425901285115
System.out.println(Math.sin(1.57));//0.9999996829318346
System.out.println(Math.sin(3.14));//0.0015926529164868282
注
:输入的是以弧度值表示,返回的值在范围[-1,1]
内
public static double cos?(double a)
返回角度的三角余弦值。 特别案例:
参数
System.out.println(Math.cos(0));//1.0
System.out.println(Math.cos(1.57));//7.963267107332633E-4
System.out.println(Math.cos(3.14));//-0.9999987317275395
System.out.println(Math.cos(4.71));//-0.0023889781122815386
System.out.println(Math.cos(6.28));//-0.9999987317275395
注
:输入的是以弧度值表示,返回的值在范围[-1,1]
内
public static double tan?(double a)
返回角度的三角正切。 特别案例:
计算结果必须在精确结果的1 ulp范围内。 结果必须是半单调的。
参数
System.out.println(Math.tan(0));//0.0
System.out.println(Math.tan(1.57));//1255.7655915007897
System.out.println(Math.tan(3.14));//-0.001592654936407223
System.out.println(Math.tan(4.71));//418.58782265388515
System.out.println(Math.tan(6.28));//-0.003185317952531891
注
:ten90°
不存在
即输入的弧度不能为(π/2±kπ)返回的值在范围[-∞,+∞]
内
在Math函数中,还有许多关于数字的基本运算,但是基本上常用的一些方法都在上文有详细的列举,对于这些常用的方法还是需要熟练运用,避免在开发过程中或平时做任务遇到时,不知所措。
Java中Math工具类提供了一些+,-,*,/和%等基本运算符不能完成的更复杂的数学运算,例如,三角函数,对数运算,指数运算等。
在Java中Math类封装了常用的数学运算,提供了基本的数学操作,如指数,对数,平方根和三角函数等。Math类位于java.lang包,它的构造方法时private的,因此无法创建Math类的对象,并且Math类中的所有方法都是类方法,可以直接通过类名来调用它们。
Math类中包含E和PI两个静态常量,正如它们名字所暗示的,它们的值分别等于e(自然对数)和 π(圆周率)。
示例:调用Math类中的E和PI两个常量,并将结果输出。代码如下:
System.out.println("E常量的值:"+Math.E);
System.out.println("PI常量的值:"+Math.E);
运行结果如下:
E常量的值:2.718281828459045
PI常量的值:2.718281828459045
在程序中常见的就是求最大值,最小值和绝对值问题,如果使用Math类提供的方法可以很容易实现,这些方法如表所示:
方法 | 说明 |
---|---|
static int abs(int a) | 返回 a 的绝对值 |
static long abs(long a) | 返回 a 的绝对值 |
static float abs(float a) | 返回 a 的绝对值 |
static double abs(double a) | 返回 a 的绝对值 |
static int max(int x,int y) | 返回 x 和 y 中的最大值 |
static double max(double x,double y) | 返回 x 和 y 中的最大值 |
static long max(long x,long y) | 返回 x 和 y 中的最大值 |
static float max(float x,float y) | 返回 x 和 y 中的最大值 |
static int min(int x,int y) | 返回 x 和 y 中的最小值 |
static long min(long x,long y) | 返回 x 和 y 中的最小值 |
static double min(double x,double y) | 返回 x 和 y 中的最小值 |
static float min(float x,float y) | 返回 x 和 y 中的最小值 |
示例: 求 10 和 20 的较大值、15.6 和 15 的较小值、-12 的绝对值,代码如下:
public class Test02 {
public static void main(String[] args) {
System.out.println("10 和 20 的较大值:" + Math.max(10, 20));
System.out.println("15.6 和 15 的较小值:" + Math.min(15.6, 15));
System.out.println("-12 的绝对值:" + Math.abs(-12));
}
}
程序运行结果如下:
10和20的较大值:20
15.6和15的较小值:15.0
-12的绝对值:12
Math类的求整方法如表所示:
方法 | 说明 |
---|---|
static double ceil(double a) | 返回大于或等于 a 的最小整数 |
static double floor(double a) | 返回小于或等于 a 的最大整数 |
static double rint(double a) | 返回最接近 a 的整数值,如果有两个同样接近的整数,则结果取偶数 |
static int round(float a) | 将参数加上 1/2 后返回与参数最近的整数 |
static long round(double a) | 将参数加上 1/2 后返回与参数最近的整数,然后强制转换为长整型 |
示例:Math类中取整方法的应用:
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.outprintln("请输入一个数字:");
double num = input.nextDouble();
System.out.println("大于或等于 "+ num +" 的最小整数:" + Math.ceil(num));
System.out.println("小于或等于 "+ num +" 的最大整数:" + Math.floor(num));
System.out.println("将 "+ num +" 加上 0.5 之后最接近的整数:" + Math.round(num));
System.out.println("最接近 "+num+" 的整数:" + Math.rint(num));
}
}
执行结果如下:
请输入一个数字:
99.01
大于或等于 99.01 的最小整数:100.0
小于或等于 99.01 的最大整数:99.0
将 99.01 加上 0.5 之后最接近的整数:100
最接近 99.01 的整数:99.0
Math类中包含的三角函数方法及其说明如表所示:
方法 | 说明 |
---|---|
static double sin(double a) | 返回角的三角正弦值,参数以孤度为单位 |
static double cos(double a) | 返回角的三角余弦值,参数以孤度为单位 |
static double asin(double a) | 返回一个值的反正弦值,参数域在 [-1,1],值域在 [-PI/2,PI/2] |
static double acos(double a) | 返回一个值的反余弦值,参数域在 [-1,1],值域在 [0.0,PI] |
static double tan(double a) | 返回角的三角正切值,参数以弧度为单位 |
static double atan(double a) | 返回一个值的反正切值,值域在 [-PI/2,PI/2] |
static double toDegrees(double angrad) | 将用孤度表示的角转换为近似相等的用角度表示的角 |
staticdouble toRadians(double angdeg) | 将用角度表示的角转换为近似相等的用弧度表示的角 |
每个方法的参数和返回值都是double类型,参数以弧度代替角度来实现。
示例:计算 90 度的正弦值、0 度的余弦值、1 的反正切值、120 度的弧度值,代码如下:
public class Test04 {
public static void main(String[] args) {
System.out.println{"90 度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0 度的余弦值:" + Math.cos(0));
System.out.println("1 的反正切值:" + Math.atan(l));
System.out.println("120 度的弧度值:" + Math.toRadians(120.0));
}
}
程序运行结果如下:
90 度的正弦值:1.0
0 的余弦值:1.0
1 的反正切值:0.7853981633974483
120 度的弧度值:2.0943951023931953
指数运算包括求根,取对数及求n次方的运算。在Math类中定义的指数运算方法如表所示:
方法 | 说明 |
---|---|
static double exp(double a) | 返回 e 的 a 次幂 |
static double pow(double a,double b) | 返回以 a 为底数,以 b 为指数的幂值 |
static double sqrt(double a) | 返回 a 的平方根 |
static double cbrt(double a) | 返回 a 的立方根 |
static double log(double a) | 返回 a 的自然对数,即 lna 的值 |
static double log10(double a) | 返回以 10 为底 a 的对数 |
示例:使用 Math 类中的方法实现指数的运算
public class Test05 {
public static void main(String[] args) {
System.out.println("4 的立方值:" + Math.pow(4, 3));
System.out.println("16 的平方根:" + Math.sqrt(16));
System.out.println("10 为底 2 的对数:" + Math.log1O(2));
}
}
该程序的运行结果如下:
4 的立方值:64.0
16 的平方根:4.0
10 为底 2 的对数:0.3010299956639812
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!