1. 数字格式化
JAVA主要是对浮点数进行格式化
DecimalFormat类用于格式化十进制数字。它可以将一些数字格式化为整数,浮点数,百分数等。通过使用该类可以为要输出的数字加上但单位或控制数字的精度。一般情况下可以在实例化对象时传递数字格式。也可以通过类中的方法applyPattern()方法来实现数字格式化。
public class demo {
static public void simgleFormat(String pattern,double value) {
DecimalFormat myFormat=new DecimalFormat(pattern);
String output=myFormat.format(value);
System.out.println(value+" 按规则:"+pattern+"格式化为:"+" "+output);
}
Static public void UseApplyPatternMethodFormat(String pattern,double value){
DecimalFormat myFormat=new DecimalFormat();
myFormat.applyPattern(pattern);
System.out.println(value+" 按规则:"+pattern+"格式化为:"+" "+output);
}
public static void main(String[] args) {
simgleFormat("%",0.23);//转换成百分数
//#代表阿拉伯数字,如果存在数字则显示,若无则不显示
//0代表阿拉伯数字,如果存在数字则显示,若无显示0
//% 百分数
//u2030千分数,前缀和后缀决定符号的位置
//u00A4 货币符号
simgleFormat("00000000.########kg",123456789.23);//加上单位
simgleFormat("#####.kg",0.23);
simgleFormat("####.###",0.237887);//三位小数,小数位数的控制
simgleFormat("0.00u2030",0.23);
simgleFormat("0.0u00A4",0.23);
}
}
2.其他设置
SETGROUPINGSIZE()设置分组大小
SETGROUPINGUSED()设置是否允许将数字进行分组
DecimalFormat myFormat=new DecimalFormat();
myFormat.setGroupingSize(2);
String output=myFormat.format(12345678.9);
System.out.println(output);
myFormat.setGroupingUsed(false);
String output1=myFormat.format(12345678.9);
System.out.println(output1);
2. 数学运算
Math类中提供众多数学函数方法,主要包括三角函数,指数函数方法,取整函数方法,取最大值,最小值以及平均值函数方法,都是static方法
Math.数学方法
数学常量
Math.pi
Math.E
3. 随机数
方法一:Math类的random()方法
这个方法默认生成大于等于0.0且小于1.0的double型随机数
0<=Math.Random()<1.0
(int)(Math.random()*n) 随机生成大于等于0小于n的数
(int)(Math.random()*n)+(int) num1 随机生成大于等于num1小于n+num1的数
(int)(Math.random()*(num2-num1))+(int) num1
生成大于等于num1 小于 num2-num1+num1=num2的数[num1,num2)
1. 成num1到num2的随机数[num1,num2)
公式:int s=(int)num1+(int)(Math.random()*(num2-num1));
2. 生成A到Z的随机字符
Char c=(char)(‘a’+Math.Random()*(‘z’-’a’+1));//得任意字符:
由[0+97,97+25+1)
得[a,123)
Char c=(char)(cha1+Math.random()*(cha2-cha1+1));(ch1到cha2)
Ascll码:
1. A 65
2. a 97
3. Z 90
4. z 122
方法二:Random类提供的产生各种数据类型随机数
1.实例化对象,Random r=new Random();
2.设置种子,Random r=new Random(seedValue);
3.调用方法
1.获取随机整数 nextInt()
2.获取有范围的整数 nextInt(10) [0,10)
3.获取随机长整数 nextLong()
4.获取随机布尔值 nextBoolean()
5.获取随机浮点数 nextFloat()
6.获取随机双精度浮点数 nextDouble()
7.获取概率密度为高斯分布的双精度值 nextGaussian()
3.大数字运算
1.BigInteger
//加法
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("75892358235923759023");
System.out.println(bigInstance.add(new BigInteger("2")));
}
//减法
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("75892358235923759023");
System.out.println(bigInstance.subtract(new BigInteger("2")));
}
//乘法
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("222222222222222222");
System.out.println(bigInstance.multiply(new BigInteger("2")));
}
//除法
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("222222222222222222");
System.out.println(bigInstance.divide(new BigInteger("2")));
}
//取商
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("4");
System.out.println(bigInstance.divideAndRemainder(new BigInteger("3"))[0]);
}
//取余数
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("5");
System.out.println(bigInstance.divideAndRemainder(new BigInteger("3"))[1])
//n次方
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("5");
System.out.println(bigInstance.pow(3));
}
//相反数
public static void main(String[] args) {
BigInteger bigInstance=new BigInteger("5");
System.out.println(bigInstance.negate());
}
2.BigDecimal
常用在精密的商业计算,加入了小数概念
//加法
public static void main(String[] args) {
demo test=new demo();
BigDecimal b3=test.add(7.65,6.76);
System.out.println(b3);
}
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) {
demo test=new demo();
BigDecimal b3=test.add(7.65,6.76);
System.out.println(b3);
}
public BigDecimal add(double value1,double value2) {
BigDecimal b1=new BigDecimal(Double.toString(value1));//减数
BigDecimal b2=new BigDecimal(Double.toString(value2));//被减数
return b1.subtract(b2);}
//乘法
public static void main(String[] args) {
demo test=new demo();
BigDecimal b3=test.add(7.65,6.76);
System.out.println(b3);
}
public BigDecimal add(double value1,double value2) {
BigDecimal b1=new BigDecimal(Double.toString(value1));//乘数
BigDecimal b2=new BigDecimal(Double.toString(value2));//被乘数
return b1.multiply(b2);
}
//除法
public static void main(String[] args) {
demo test=new demo();
BigDecimal b3=test.div(7.65,6.76,3);
System.out.println(b3);
}
public BigDecimal div(double value1,double value2,int b) {//b是保留的小数位数
BigDecimal b1=new BigDecimal(Double.toString(value1));//除数
BigDecimal b2=new BigDecimal(Double.toString(value2));//被除数
return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP);
}