Java 数字处理类说明与常用方法

数字格式化

在 Java 中使用 java.text.DecimalFormat 格式化数字。
在 Java 中没有格式化的数据遵循以下原则:

  • 如果数据绝对值大于 0.001 并且小于 10000000,Java 将以常规小数形式表示。
  • 如果数据绝对值小于 0.001 或者大于 10000000,使用科学技术法表示。
    NumberFormat 的子类 DecimalFormat 可用于格式化十进制数字。一般情况下可以在实例化 DecimalFormat 对象时传递数字格式,也可以通过 DecimalFormat 类中的方法 applyPattern() 来实现数字格式化。比如:
DecimalFormat df = new DecimalFormat(String pattern);
df.format(value);

或者:

DecimalFormat df = new DecimalFormat();
df.applyPattern(String pattern);
df.format(value);

DecimalFormat 类中特殊字符说明如下:

字符说明
0代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示零
#代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位存在数字则显示字符;如果该位不存在数字,则不表示
.小数分隔符或货币小数分隔符
-负号
分组分隔符
E分隔科学技术法的尾数和指数
%本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数
\u2030本符号放置在数字的前缀或后缀,将数字乘以 1000 显示为千分数。
\u00A4本符号放置在数字的前缀或后缀,用作货币记号
本符号为单引号,当上述特殊字符出现在数字中时,应为特殊符号添加单引号,系统会将此符号视为普通符号处理

数字运算

在 Java 语言中提供了一个执行数学基本运算的 Math 类,该类包括常用的数字运算方法,如三角函数方法、指数函数方法、对数函数方法、平方根等一些常用数学函数,除此之外还提供一些常用的数学常量,如 PI、E等。

Math 类

在 Math 类中提供众多数学函数方法,主要包括三角函数方法、指数函数方法、取整函数方法、取最大值、最小值以及平均值函数方法,这些方法都被定义为 static 形式。

常用的数学运算方法

在 Math 类中运算方法较多,大致可以将其分为 4 大类别,分别为三角函数方法、指数函数方法、取整函数方法以及去最大值、最小值和绝对值函数方法。

三角函数

三角函数方法如下:

  • 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 angdeg):将角度转换为弧度。
  • public static double toDegrees(double angrad):将弧度转换为角度。

指数函数方法

Math 类中与指数相关的函数方法如下。

  • public static double exp(double a):用于获取 e 的 a 次方,即取 ea
  • 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 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 static double max(double a, double b):取 a 与 b 之间的最大值。
  • public static int min(int a, int b):取 a 与 b 之间的最小值,参数为整型。
  • public static long min(long a, long b):取 a 与 b 之间的最小值,参数为长整型。
  • public static float min(float a, float b):取 a 与 b 之间的最小值,参数为浮点型。
  • public static double min(double a, double b):取 a 与 b 之间的最小值,参数为双精度型。
  • public static int abs(int a):返回整型参数的绝对值。
  • public static long abs(long a):返回长整型参数的绝对值。
  • public static float abs(float a):返回浮点型参数的绝对值。
  • public static double abs(double a):返回双精度型参数的绝对值。

随机数

Math.random()方法

该方法默认产生大于等于0.0 且小于 1.0 的 double 型随机数。

Random 类

Random 类在java.util包中,通过实例化一个Random对象创建一个随机数生成器。
语法如下:

Random r=new Random();

常用方法

  • public int nextInt():返回一个随机整数。
  • public int nextInt():返回一个大于等于0且小于n的随机整数。
  • public long nextLong():返回一个随机长整型值。
  • public boolean nextBoolean():返回一个随机布尔型值。
  • public float nextFloat():返回一个随机浮点型值。
  • public double nextDouble():返回一个随机双精度型值。
  • public double nextGaussian():返回一个概率密度为高斯分布的双精度值。

大数字运算

BigInteger

语法如下:
public BigInteger(String val)

常用方法

方法返回值功能
add(BigInteger val)BigInteger做加法运算。
subtract(BigInteger val)BigInteger做减法运算。
multiply(BigInteger val)BigInteger做乘法运算。
divid(BigInteger val)BigInteger做除法运算。
remainder(BigInteger val)BigInteger做取余操作。
divideAndRemainder(BigInteger val)BigInteger[]用数组返回余数和商,结果数组中第一个值为商,第二个值为余数。
pow(int exponent)BigInteger进行取参数的 expoennt 次方操作。
negate()BigInteger取相反数。
shiftLeft(int n)BigInteger将数组左移n位,如果n为负数,则做右移操作。
shiftRight(int n)BigInteger将数组右移n位,如果n为负数,则做左移操作。
and(BigInteger val)BigInteger做与操作。
or(BigInteger val)BigInteger做或操作。
compareTo(BigInteger val)BigInteger做数字比较操作。
equals(Object x)boolean当参数 x 是Biginteger 类型的数字并且数值相等时,返回 true。
min(BigInteger val)BigInteger返回较小的数值。
max(BigInteger val)BigInteger返回较大的数值。

BigDecimal

常用构造方法:

  • public BigDecimal(double val)
  • public BigDecimal(String val)
    BigDecimal 类型的数字可以用来做超大的浮点数的运算,如加、减、乘、除等,但是所有算法中除法是最复杂的。
public BigDecimal divid(BigDecimal divisor, int scale, int roudingMode)
//做除法操作,方法中 3 个参数分别代表除数、商的小数点后的位数、近似处理模式。 

近似处理模式:

模式含义
BigDecimal.ROUND_UP商的最后一位如果大于0,则向前进位,正负数都如此
BigDecimal.ROUND_DOWN商的最后一位无论是什么数字都省略
BigDecimal.ROUND_CEILINE商如果是正数,按照ROUND_ UP模式处理;如果是负数,按照ROUND_DOWN模式处理。这种模式的处理都会使近似值大于等于实际值
BigDecimal.ROUND_FLOOR与ROUND_CEILING模式相反,商如果是正数,按照ROUND_DOWN模式处理;商如果是负数,则按照ROUND_ UP模式处理。这种模式的处理都会使近似值小于等于实际值
BigDecimal.ROUND_HALF_DOWN对商进行四舍五入操作, 如果商最后一位小于等于5, 则做舍弃操作:如果最后-位大于5,则做进位操作,如7.5≈7
BigDecimal.ROUND_HALF_UP对商进行四舍五入操作,如果商的最后位小于5则舍弃:如果大于等于5,进行进位操作,如7.5≈8
BigDecimal.ROUND_HALF_EVEN如果商的倒数第二位为奇数,则按照ROUND_HALF UP处理:如果为偶数,则按照ROUND HALF DOWN处理,如7.5≈8, 8.5≈8
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页