目录
数字格式化
在Java中,DecimalFormat类用于格式化数字。以下是一些在DecimalFormat类中使用的特殊字符及其含义:
-
#:表示任意数字(包括0和空格),如果该位置没有数字,则显示空格。
-
0:表示必须有数字,如果该位置没有数字,则显示0。
-
.:表示小数点,位置和数量根据需要使用。
-
,:表示千位分隔符。
-
%:表示将数字乘以100,并添加百分号。
-
E:表示科学计数法的指数符号。
-
\u2030:表示将数字乘以1000,并添加千分号。
-
\u00A4:表示货币符号。
-
':可以在任意位置使用,用于引用特殊字符,如'$'。
例如,以下格式化模式将数字格式化为货币格式:"$#,##0.00"。在此模式中,#表示任意数字,0表示必须有数字,.表示小数点,逗号表示千位分隔符,$表示美元符号。
数学运算
1.Math类
Math类是Java programming language中的一个内置类,提供了执行基本数学运算的方法。它包含一些静态方法,可以对基本类型的数字执行算术、三角函数、指数函数、求平方根以及其他数学操作。以下是Math类常用的方法:
-
abs():返回一个数的绝对值。
-
pow():返回一个数的幂。
-
sqrt():返回一个数的平方根。
-
random():返回一个0到1之间的随机数。
-
sin()、cos()、tan()、asin()、acos()、atan():计算三角函数。
-
exp()、log()、log10():计算指数、自然对数和常用对数。
-
ceil()、floor()、round():返回一个四舍五入的整数。
-
max()、min():返回两个数中的最大值和最小值。
Math类中的所有方法都是静态的,可以直接使用类名访问。例如,要计算正弦函数的值,可以使用以下代码:
double x = 2.0;
double sinVal = Math.sin(x);
在这个例子中,sinVal将被赋值为2的正弦函数的值。
2.常用数学运算方法
以下是常用数学运算方法的简要说明:
-
加减乘除运算:加减乘除可以直接使用基本的算数运算符(+、-、*、/)。例如,要计算10加5的结果,可以使用以下代码:
int a = 10; int b = 5; int result = a + b;
-
幂运算:可以使用Math类中的pow()方法计算幂。例如,要计算2的3次幂,可以使用以下代码:
double result = Math.pow(2, 3);
-
平方根运算:可以使用Math类中的sqrt()方法计算平方根。例如,要计算16的平方根,可以使用以下代码:
double result = Math.sqrt(16);
-
取绝对值运算:可以使用Math类中的abs()方法取绝对值。例如,要计算-10的绝对值,可以使用以下代码:
int a = -10; int result = Math.abs(a);
-
四舍五入运算:可以使用Math类中的round()方法将一个浮点数四舍五入成整数。例如,要将3.14四舍五入成整数,可以使用以下代码:
double a = 3.14; int result = Math.round(a);
-
三角函数运算:可以使用Math类中的sin()、cos()、tan()、asin()、acos()、atan()方法计算三角函数。例如,要计算正弦函数的值,可以使用以下代码:
double x = 2.0; double sinVal = Math.sin(x);
-
对数运算:可以使用Math类中的log()、log10()方法计算对数。例如,要计算10的自然对数,可以使用以下代码:
double result = Math.log(10);
这只是数学运算中的一小部分,Java中提供了更多的数学计算相关类和方法,在具体的应用场景中,需要根据实际需求选择合适的方法。
随机数
1.Math.random()方法
Math.random()是Java中一个常用的方法,用于生成一个[0,1)之间的随机浮点数。该方法返回一个double类型的伪随机数,在[0,1)范围内均匀分布。具体使用方式如下:
double randomNum = Math.random(); // 生成一个[0,1)之间的随机浮点数
如果需要生成一个整数型的随机数,可以通过以下方式得到:
int randInt = (int)(Math.random() * n); // 生成一个[0,n)之间的随机整数
其中n为需要生成的随机整数范围的上限。需要注意的是,Math.random()方法只能生成伪随机数,不能用于加密场景。如果需要更高质量的随机数,可以使用SecureRandom类。
2.Random类
Random是Java中一个常用的类,用于生成随机数。使用Random类可以生成伪随机数序列,包括整型、长整型、浮点型等各种类型的随机数。具体使用方式如下:
- 创建Random对象:
Random rand = new Random();
- 生成随机整数:
int randInt = rand.nextInt(); // 生成一个随机整数
int randIntBound = rand.nextInt(n); // 生成一个[0,n)之间的随机整数
其中,nextInt()方法返回一个随机的int型整数,nextInt(n)方法返回[0,n)之间的一个随机整数。
- 生成随机长整数:
long randLong = rand.nextLong(); // 生成一个随机长整型数
- 生成随机浮点数:
double randDouble = rand.nextDouble(); // 生成一个[0,1)之间的随机浮点数
需要注意的是,Random类默认使用系统当前时间作为种子数,生成的随机数序列是可重复的。如果需要获得不同的随机数序列,可以显式地设置种子数:
Random rand = new Random(seed);
其中,seed为随机数生成器的种子数。如果种子数相同,则生成的随机数序列也相同。如果需要生成更具随机性的随机数,可以使用SecureRandom类。
大数字运算
1.BigInteger类
BigInteger是Java中一个用于处理大整数的类,可以处理任意大小的整数,不受long型整数位数的限制。BigInteger类提供了基本的整数运算,如加、减、乘、除、取模、幂等等。
创建一个BigInteger对象可以通过以下两种方式:
- 通过一个整型值来创建一个BigInteger对象:
BigInteger intVal = BigInteger.valueOf(100);
- 通过字符串来创建一个BigInteger对象:
BigInteger strVal = new BigInteger("12345678901234567890");
BigInteger类提供了很多方法用于实现整数运算,如加、减、乘、除、取模、幂等等,其中一些常用的方法如下:
- 加法
BigInteger sum = a.add(b);
其中,a和b是要相加的两个BigInteger对象,add()方法返回相加之后的结果。
- 减法
BigInteger diff = a.subtract(b);
其中,a和b是要相减的两个BigInteger对象,subtract()方法返回相减之后的结果。
- 乘法
BigInteger product = a.multiply(b);
其中,a和b是要相乘的两个BigInteger对象,multiply()方法返回相乘之后的结果。
- 除法
BigInteger quotient = a.divide(b);
其中,a和b是要相除的两个BigInteger对象,divide()方法返回相除之后的结果。
- 取模
BigInteger remainder = a.mod(b);
其中,a和b是要进行取模操作的两个BigInteger对象,mod()方法返回相除之后的余数。
需要注意的是,由于BigInteger类是不可变类,每次进行运算都会返回一个新的BigInteger对象,因此在使用时需要赋值给一个新的BigInteger对象。
2.BigDecimal类
BigDecimal是Java中一个用于处理高精度十进制数的类,可以避免浮点数运算所带来的精度上的问题。BigDecimal类提供了大量的方法用于实现高精度十进制数的数学运算,如加、减、乘、除、幂等等。
创建一个BigDecimal对象可以通过以下两种方式:
- 通过一个double类型值来创建一个BigDecimal对象:
BigDecimal doubleVal = new BigDecimal(10.05);
- 通过字符串来创建一个BigDecimal对象:
BigDecimal strVal = new BigDecimal("12345678901234567890.1234567890");
BigDecimal类提供了很多方法用于实现数学运算,如加、减、乘、除、幂等等,其中一些常用的方法如下:
- 加法
BigDecimal sum = a.add(b);
其中,a和b是要相加的两个BigDecimal对象,add()方法返回相加之后的结果。
- 减法
BigDecimal diff = a.subtract(b);
其中,a和b是要相减的两个BigDecimal对象,subtract()方法返回相减之后的结果。
- 乘法
BigDecimal product = a.multiply(b);
其中,a和b是要相乘的两个BigDecimal对象,multiply()方法返回相乘之后的结果。
- 除法
BigDecimal quotient = a.divide(b, scale, roundingMode);
其中,a和b是要相除的两个BigDecimal对象,scale是小数点后的精度位数,roundingMode是取整模式,divide()方法返回相除之后的结果。
- 幂运算
BigDecimal pow = a.pow(n);
其中,a是底数的BigDecimal对象,n是指数。pow()方法返回底数的n次方的结果。
需要注意的是,由于BigDecimal类是不可变类,每次进行运算都会返回一个新的BigDecimal对象,因此在使用时需要赋值给一个新的BigDecimal对象。另外,在进行除法运算时,需要进行精度的控制和合理的取整操作,避免出现精度丢失的情况。