1、数字格式化
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字,它可以将一些数字格式化为整数,浮点数、百分数。
2、数学运算
2.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 a):将角度转换为弧度。
public static double toDegrees(double a):将弧度转换为角度。
例:
public class Test11 {
public static void main(String[] args){
//取60度正弦、余弦、正切值
System.out.println("60度正弦值为:"+Math.sin((Math.PI/3)));
System.out.println("60度余弦值为:"+Math.cos((Math.PI/3)));
System.out.println("60度正切值为:"+Math.tan((Math.PI/3)));
}
}
60度正弦值为:0.8660254037844386
60度余弦值为:0.5000000000000001
60度正切值为:1.7320508075688767
2.2 指数函数方法
public static double exp(double a):用于获取e的a次方。
public static double log(double a):用于自然对数lna的值。
public static double log10(double a):用于取底数为10的对数。
public static double sqrt(double a):用于取a的平方根,a不能为负值。
public static double cbrt(double a):用于取a的立方根。
public static double pow(double a,double b):用于取a的b次方。
public class Test11 {
public static void main(String[] args){
System.out.println("e的平方:"+Math.exp(2));
System.out.println("以e为底,2的对数:"+Math.log(2));
System.out.println("以10为底,10的对数:"+Math.log10(2));
System.out.println("4的平方根:"+Math.sqrt(4));
System.out.println("2的立方根:"+Math.cbrt(2));
System.out.println("2的5次方:"+Math.pow(2,5));
}
}
e的平方:7.38905609893065
以e为底,2的对数:0.6931471805599453
以10为底,10的对数:0.3010299956639812
4的平方根:2.0
2的立方根:1.2599210498948732
2的5次方:32.0
2.3 取整函数方法
public static double ceil(double a):返回大于等于参数的最小整数。
public static double floor(double a):返回小于等于参数的最大整数。
public static double rint(double a):返回与参数最接近的整数,如果两个同为整数,且同样接近,则结果取偶数。
public static int round(float a):将参数加上0.5后返回与参数最近的整数。
public static long round(double a):将参数加上0.5后返回与参数最近的整数,然后强制转换为长整型。
public class Test11 {
public static void main(String[] args){
System.out.println("ceil值:"+Math.ceil(2.7));
System.out.println("floor值:"+Math.floor(2.7));
System.out.println("rint值:"+Math.rint(2.7));
System.out.println("round值:"+Math.round(2.7f));
System.out.println("round值:"+Math.round(2.7));
}
}
ceil值:3.0
floor值:2.0
rint值:3.0
round值:3
round值:3
2.4 取最大值、最小值、绝对值函数方法
public class Test11 {
public static void main(String[] args){
System.out.println("12和24的较大者:"+Math.max(12,24));
System.out.println("4.4和5较小者:"+Math.min(4.4,5));
System.out.println("-8的绝对值为:"+Math.abs(-8));
}
}
12和24的较大者:24
4.4和5较小者:4.4
-8的绝对值为:8
3、随机数
3.1 Math.random()方法
在Math类中存在一个random()方法,用于产生随机数字,这个方法默认生成大于等于0.0且小于1.0的double型随机数。
即0.0<Math.random()<1.0;
例:在4到34之间任意生成一个偶数;
public class Even {
public static int GetEven(int s1,int s2){
int s3=(int)s1+(int)(Math.random()*(s2-s1));
if(s3%2==0){
return s3;
}
else
{
return s3+1;
}
}
public static void main(String[] args){
System.out.println("任意一个4到34之间的偶数:"+GetEven(4,34));
}
}
任意一个4到34之间的偶数:12
3.2 Random类
通过实例化一个Random对象创建一个随机生成器。
Random r=new Random();
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():返回一个随机概率密度为高斯分布的双精度值。
例:
import java.util.Random;
public class RandomDemo {
public static void main(String[] args){
Random r=new Random();//实例化一个Random类
System.out.println("随机产生一个整数:"+r.nextInt());
System.out.println("随机产生一个大于等于0小于20的整数:"+r.nextInt(20));
System.out.println("随机产生一个布尔类型:"+r.nextBoolean());
}
}
结果显示:
随机产生一个整数:432402146
随机产生一个大于等于0小于20的整数:5
随机产生一个布尔类型:true
4、大数字运算
4.1 BigInteger
java.math.BigInteger类针对大整数的处理类,用于高精度计算。下面给出其用法(双引号不能去掉):
BigInteger twoInstance=new BigInteger("2");
下面给出一些函数:
BigInteger abs() 返回大整数的绝对值
BigInteger add(BigInteger val) 返回两个大整数的和
BigInteger and(BigInteger val) 返回两个大整数的按位与的结果
BigInteger andNot(BigInteger val) 返回两个大整数与非的结果
BigInteger divide(BigInteger val) 返回两个大整数的商
double doubleValue() 返回大整数的double类型的值
float floatValue() 返回大整数的float类型的值
BigInteger gcd(BigInteger val) 返回大整数的最大公约数
int intValue() 返回大整数的整型值
long longValue() 返回大整数的long型值
BigInteger max(BigInteger val) 返回两个大整数的最大者
BigInteger min(BigInteger val) 返回两个大整数的最小者
BigInteger mod(BigInteger val) 用当前大整数对val求模
BigInteger multiply(BigInteger val) 返回两个大整数的积
BigInteger negate() 返回当前大整数的相反数
BigInteger not() 返回当前大整数的非
BigInteger or(BigInteger val) 返回两个大整数的按位或
BigInteger pow(int exponent) 返回当前大整数的exponent次方
BigInteger remainder(BigInteger val) 返回当前大整数除以val的余数
BigInteger leftShift(int n) 将当前大整数左移n位后返回
BigInteger rightShift(int n) 将当前大整数右移n位后返回
BigInteger subtract(BigInteger val)返回两个大整数相减的结果
byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中
String toString() 将当前大整数转换成十进制的字符串形式
BigInteger xor(BigInteger val) 返回两个大整数的异或
例:
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args){
BigInteger b=new BigInteger("16");
System.out.println("加法操作:"+b.add(new BigInteger("4")));
System.out.println("减法操作:"+b.subtract(new BigInteger("4")));
System.out.println("乘法操作:"+b.multiply(new BigInteger("2")));
System.out.println("除法操作:"+b.divide(new BigInteger("2")));
System.out.println("取商:"+b.divideAndRemainder(new BigInteger("4"))[0]);
System.out.println("取余数:"+b.divideAndRemainder(new BigInteger("4"))[1]);
}
}
结果显示:
加法操作:20
减法操作:12
乘法操作:32
除法操作:8
取商:4
取余数:0
4.2 BigDecimal
java.math.BigDecimal类则针对大小数的处理类。
1. add(BigDecimal):BigDecimal对象中的值相加,返回BigDecimal对象
2. subtract(BigDecimal):BigDecimal对象中的值相减,返回BigDecimal对象
3. multiply(BigDecimal):BigDecimal对象中的值相乘,返回BigDecimal对象
4. divide(BigDecimal):BigDecimal对象中的值相除,返回BigDecimal对象
5. toString():将BigDecimal对象中的值转换成字符串
6. doubleValue():将BigDecimal对象中的值转换成双精度数
7. floatValue():将BigDecimal对象中的值转换成单精度数
8. longValue():将BigDecimal对象中的值转换成长整数
9. intValue():将BigDecimal对象中的值转换成整数
例:
import java.math.BigDecimal;
public class BigDecimalDemo {
public BigDecimal add(double value1,double value2){
BigDecimal b1=new BigDecimal(Double.toString(value1));
BigDecimal b2=new BigDecimal(Double.toString(value2));
return b1.add(b2);
}
public static void main(String[] args){
BigDecimalDemo b=new BigDecimalDemo();
System.out.println("两个数相加:"+b.add(5,90));
}
}
两个数相加:95.0