数字处理类学习笔记

9.数字处理类
9.1数字格式化
数字格式化在解决实际问题时十分普遍。数字格式化操作主要针对的是浮点型数据,包括double和float型的数据,在java中使用java.text.DecimalFormat格式化数字
在java中没有格式化的数据遵循以下原则:
若数据绝对值大于0.001并且小于10000000,是以常规小数形式表述
若数据绝对值小于0.001并且大于10000000,使用科学计数法表示
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。它可以将一些数字格式化为整数,浮点数,百分数等。通过使用该类可以为要输出的数字上加上单位或控制数字的精度,一般情况下可以在实例化DecimalFloat对象时传递数字格式,也可通过DecimalFloat类中的applyPattern()方法来实现数字格式化
当格式数字时,在DecimalFloat类中使用一些特殊字符构成一个格式化模板,使数字按照一定的特殊字符格式进行匹配。
说明:特殊字符及所代表的含义
符号 含义
0 阿拉伯数字

阿拉伯数字如果不存在就显示为空

. 小数分隔符或货币小数分隔符

  •   	减号
    

, 分组分隔符
E 分割科学技术法中的尾数和指数。在前缀和后缀中无需添加引号
; 分隔正数和负数子模式
% 乘以100并显示为百分数
/u2030 乘以1000并显示为千分数
\u00A4 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符
’ 用于在前缀或或后缀中为特殊字符加引号,例如 “’#’#” 将 123 格式化为 “#123”。要创建单引号本身,请连续使用两个单引号:"# o’'clock"
9.2数学运算
9.2.1math类
在math类中提供了众多的数学函数方法,主要包括指数函数,三角函数,取整函数,取最大值与最小值,平均值的方法,这些方法都被定义为static形式,所以在程序的应用中较为简便
调用方法:
Math.数学方法
在math类中除了函数方法外还有一部分常用的数学常量,如PI E等 调用方法:
Math.PI
Math.E
9.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);将弧度转换为角度
2.指数函数方法
public static double exp(double a);用于获取e的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次方
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后返回与参数最接近的整数,然后强制转换为长整型
4.取最大值,最小值,绝对值函数的方法
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);返回返回双精度型参数的绝对值
9.3随机数
9.3.1
在math中存在一个random方法,用于产生随机数字,默认产生大于等于0小于1.0的数字,即0<=Math.random()<1.0,只要稍加处理即可产生任意的随机数
使用此方法也可产生a~z之间的字符:
(char)(‘a’+Math.random()(‘z’-‘a’+1));
生成任意两个字符之间的随机字符:
(char)(cha1+Math.random()
(cha2-cha1+1));
9.3.2 Random类
产生随机数的类
语法如下:
Random r=new Random();
r指的是Random对象
在实例化对象时设置随机数生成器的种子;
语法如下:
Random r=new Random(seedValue);
r指的是Random对象
seedValue指的是随机数生成器的种子
获取各种随机数的常用方法:
public int nextInt():返回一个随机整数
public int nextInt(int n):返回一个大于0小于n的随机整数
public long nextLong():返回一个长整型值
public boolean nextBoolean():返回一个随机boolean类型
public float nextFloat():返回一个随机浮点数类型
public double nextDouble():返回一个随机的双精度值
public double nextGaussian():返回一个一个概率密度为高斯分布的双精度值
9.4大数字运算
9.4.1BigInteger
BigInteger类型的数字范围较Integer类型的范围要大得多。前文介绍的Integer为int的包装类,int的最大值为2^31-1,如果要计算更大的数字,使用Integer数据类型将无法实现,所以java提供了BigInteger类来处理更大的数字,其支持任意精度,可以认为在运算中BigInteger可以准确的表示任意的大小数值二不会丢失
在BigIntegetr类中封装了多种操作包括加减乘除,绝对值,相反数,最大公约数即判断是否为质数等操作
语法如下:
public BigInteger(String var);
运算方法:
public BigInteger add(BigInteger val):做加法运算
public BigInteger subtract(BigInteger val):做减法运算
public BigInteger multiply(BigInteger val):做乘法运算
public BigInteger divide(BigInteger val):做除法运算
public BigInteger remainder(BigInteger val):做取余操作
public BigInteger[] divideAndRemainder(BigInteger val):用数组返回余数和商,结果数组中第一个为商,第二个为余数
public BigInteger pow(int val):见ing取参数的val次方操作
public BigInteger negate():取相反数
public BigInteger shiftLeft(int n):将数字向左移动n位,若n为负数就向右移动
public BigInteger shiftRight((int n):将数字向右移动n位,若n位负数就向左移动
public BigInteger and(BigInteger val):做与操作
public BigInteger or(BigInteger val):做或操作
public BigInteger compareTo(BigInteger val):做数字比较操作
public boolean equals(Object X):当参数x是BigInteger类型的数字时并且数值相等时,返回true
public BigInteger min(BigInteger val):返回较小的数值
public BigInteger max(BigInteger val):返回较大的数值
9.4.2BigDecimal
与BigInteger均能实现大数字的操作,但是不同的是其加入了小数的概念,其可以支持任意精度的计算
构造方法:
public BigDecimal(double val):实例化时将双精度型转化为BigDecimal类型
public BigDecimal(String val):实例化时将字符串类型妆化为BigDeciaml类型
操作方法:
public BigDecimal add(BigDecimal augend):做加法操作
public BigDecimal subtract(BigDecimal subtrashend):做减法操作
public BigDecimal mulitiply(BigDecimal a):做乘法操作
public BigDecimal divide(BigDecimal a,int b,int c):做除法操作,3个参数分别为除数,商的小数点后的位数,近似处理模式
BigDecimal类中的divide()方法的多种处理模式
BigDecimal.ROUND_UP:若商的最后一位大于零,则向前进位,正负数一样
BigDecimal.ROUND_DOWN:商的最后一位数字无论是什么都省略
BigDecimal.ROUND_GEILING:若商为正数,则执行ROUND_UP处理,若商为负数,按ROUND_DOWN处理,这两种模式都会时近似值大于等于实际值
BigDecimal.ROUND_FLOOR:与ROUND_GEILING相反
BigDecimal.ROUND_HALF_DOWN:对商进行四舍五入操作,若最后一位小于等于五,则舍弃,反之进位,例:7.5≈7
BigDecimal.ROUND_HALF_UP:对商进行四射五入操作,若最后一位小于等于五,则舍弃,反之进位,例:7.5≈8
BigDecimal.ROUND_HALF_EVEN:若商的倒数第二位为奇数,则按照ROUND_HALF_UP处理,反之,若为偶数,则按照ROUND_HALF_DOWN处理. 例:7.5≈7 7.5≈8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值