Java第七章

一、数字处理类

一、格式化字符串
        /*数字格式化*/
    	/*Java主要对浮点型数据进行格式化操作:double型和float型*/
    	/*根据绝对值大于0.001小于或等于10000000将以常规小数形式输出,否则以科学计数法形式输出*/
    	/*DecimalFormat是NumberFormat的一个子类,主要对十进制数进行格式化*/
    	/*格式化是根据DecimalFormat的字符构造一个模板,格式化时按照字符模板进行匹配*/
//设置格式化模式来格式化数字
package 拍;
//导入类
import java.text.DecimalFormat;

public class Anything{
 /*使用实例化对象时设置格式化模式*/
	static public void SingFormat(String pattern,double value){
    	//实例化DecimaFormat对象
    	DecimalFormat myFormat=new DecimalFormat(pattern);
    	//将数字进行格式化
    	String output=myFormat.format(value);
    	System.out.println(value+" "+pattern+" "+output);
	}
	//使用applyPattern()方法对数字进行格式化
	static public void UseApplyPatternMethodFormat(String pattern,double value){
        //实例化DecimalFormat对象
    	DecimalFormat myFormat=new DecimalFormat();
    	//调用applyPattern()方法设置格式化模板
    	myFormat.applyPattern(pattern);
    	System.out.println(value+""+pattern+""+myFormat.format(value));
	}
	public static void main(String[] args){
    	SingFormat("###.###.###",123456.789);
    	/*在在数字后加上d单位*/
    	SingFormat("00000000.###kg",123456.789);
    	//按照格式模板格式化数字,不存在的位以0显示
    	SingFormat("000000.000",123.78);
    	//调用静态UseApplyPatternMethodFormat()方法
    	//将数字转换成百分数形式
    	UseApplyPatternMethodFormat("#.###%",0.789);
        //将小数点后格式化为2位
    	UseApplyPatternMethodFormat("###.##",123456.789);
    	//将数字转换成千分数形式
    	UseApplyPatternMethodFormat("0.00\u2030",0.789);
	}

}

输出结果

二、调用方法对字符串进行分组

    DecimalFormat myFormat=new DecimalFormat();
    //设置将数字分组为2
    myFormat.setGroupingSize(2);
    String output=myFormat.format(123456.789);
    System.out.println("将数字以每俩个数字分组"+output);
    
    //设置不允许数字分组
    myFormat.setGroupingUsed(false);
    String output2=myFormat.format(123456.789);
    System.out.println("将数字以每俩个数字分组"+output2);

三、数学运算Math类

    //以下每个方法的参数和返回值都是double型
    System.out.println("90度的正切:"+Math.tan(Math.PI/2));
    System.out.println("0度的余弦:"+Math.cos(0));
    System.out.println("2的平方根与2的商的反余弦:"+Math.acos(Math.sqrt(2)/2));
    System.out.println("取120度的弧度制:"+Math.toRadians(120.0));
    System.out.println("取PI/2的角度:"+Math.toDegrees(Math.PI/2));
    
   //指数函数法(参数和返回值都是double型)
    System.out.println("e的平方值:"+Math.exp(2));
    System.out.println("以e为底e的对数:"+Math.log(Math.exp(1)));
    System.out.println("以10为底10的对数:"+Math.log10(10));
    System.out.println("27的立方根:"+Math.cbrt(27));
    System.out.println("2的3次方:"+Math.pow(2,3));
    
    //取整函数法(前三种参数和返回值都为double类型)
    System.out.println("返回第一个大于等于5.2的整数:"+Math.ceil(-5.2));
    System.out.println("返回第一个小于等于-5.5的整数:"+Math.floor(-5.2));
    System.out.println("返回与5.6最接近的整数:"+Math.rint(5.6));
    System.out.println("将参数加上0.5后返回最近的整数(此时参数数据类型为float)"+Math.round(2.7f));
    System.out.println("将参数加上0.5后返回最近的整数(此时参数数据类型为(double),并将结果转化为长整型"+Math.round(2.7f));
    
    //Math.abs(a)求绝对值函数,参数和返回值可为长整型、整型、浮点型、双精度型。
    
    // Math.max(a,b);参数和返回值可为整型、双精度型
    
    //Math.min(a,b);参数和返回值可为整型、长整型、浮点型、双 
	
	//随机数的产生有俩种方法:一是调用Math类的random()方法;二是调用Random类提供的产生各种随机数的方法

    //Math.random()产生double类型的数据,且范围在0和1之间
    //(int)(Math.random()*n)返回大于等于0且小于n的随机数
    //m+(int)(Math.random()*n)返回大于等于m且小于m+n的随机数

//实例产生随机偶数
	public class Anything{
	/**定义产生偶数的方法
 	* num1起始的随机数范围参数
 	* num2终止的随机数范围参数
 	* return 随机的的范围内偶数
 	* */
	public static int GetEvenNum(double num1,double num2){
    	//产生num1到num2的随机数
    	int s=(int)(num1)+(int)(Math.random()*(num2-num1));
    	if(s%2==0)
        	return s;
    	else
        	return s+1;
	}
	public static void main(String[] args){
    	System.out.println("任意2-32所产生的随机偶数为:"+GetEvenNum(2,32));
	}
}


//生成随机字符
    //生成a-z之间的随机字符
    (char)('a'+Math.random()*('z'-'a'+1));
    //随机生成ch1到ch2之间的字符
    (char)(ch1+Math.random()*(ch2-ch1+1));

	public class Anything{
	public static char GetRandomChar(char ch1,char ch2){
    	return (char)(ch1+Math.random()*(ch2-ch1+1));
	}
	public static void main(String[] args){
    	System.out.println("随机产生a-z之间字符:"+ GetRandomChar('a','z'));
    }
}

二、Random()类
	//导入类
	import java.util.Random;
	public class Anything{
	public static void main(String[] args){
    	//实例化一个Random对象创建一个随机数生成器
    	Random r=new Random();
    	//Random r=new Random(seedvalue);
    	//r为Random的对象;seedvalue随机数生成器的的种子
    	System.out.println("随机产生一个整数:"+r.nextInt());
    	System.out.println("随机产生一个大于等于0且小于10的整数:"+r.nextInt(10));
    	System.out.println("随机产生一个Boolean型:"+r.nextBoolean());
    	System.out.println("随机产生一个浮点型数据:"+r.nextFloat());
    	System.out.println("随机产生一个双精度型数据:"+r.nextDouble());
    	System.out.println("随机产生一个概率分布为高斯分布的双精度值:"+r.nextGaussian());
	}
}
三、大数字运算
    //BigInteger类支持任意精度的整数
    //BigInteger类比Integer类的数据范围大得多
    //BigInteger类可以表示任意类型的整数值而不会丢失
    //语法如下
    //BigInteger twoInsyance=new BigInteger(String str);
    BigInteger twoInsyance=new BigInteger(“3”);
    //双引号不能省略,以为是以字符串形式

	import java.math.BigInteger;
	public class Anything{
		public static void main(String[] args){
    		//实例化一个大数字
    		BigInteger b=new BigInteger("4");
    		System.out.println("取该大数加2的操作(加法操作):"+b.add(new BigInteger("2")));
    		System.out.println("取该大数减2的操作(减法操作):"+b.subtract(new BigInteger("2")));
    		System.out.println("取该数乘2的操作(乘法操作):"+b.multiply(new BigInteger("2")));
    		System.out.println("取该大数除2的操作(除法操作):"+b.divide(new BigInteger("2")));
    		System.out.println("取该大数除2的商:"+b.divideAndRemainder(new BigInteger("2"))[0]);
    		System.out.println("取该大数除2的余数:"+b.divideAndRemainder(new BigInteger("2"))[1]);
    		System.out.println("该大数的2次方:"+b.pow(2));
    		System.out.println("该大数的相反数:"+b.negate());
		}
	}

    //BigDecimal也支持大数运算,特别的是它引入了小数的概念;支持任何精度的定点数,可以用来i精确计算货币值
    //BigDecimal类型数据可以做超大类型的浮点数运算
    //BigDecimal类中divide()方法有多种设置,用于返回商末位小数点处理

在这里插入图片描述

	import java.math.BigDecimal;
	public class Anything{
	static final int location=10;
	/**
	 * 定义加法方法;参数为加数与被加数
 	* value1
	 * value2
 	* return 和*/
	public BigDecimal add(double value1,double value2){
    	//实例化BigDecimal对象
    	BigDecimal b1=new BigDecimal(Double.toString(value1));
    	BigDecimal b2=new BigDecimal(Double.toString(value2));
    	//调用加法方法
        return b1.add(b2);
	}
	/**
 	*定义乘法方法;参数为乘数与被乘数
 	* */
	public BigDecimal mul(double value1,double value2){
    	BigDecimal b1=new BigDecimal(Double.toString(value1));
    	BigDecimal b2=new BigDecimal(Double.toString(value2));
    	//调用乘法方法
    	return b1.multiply(b2);
	}
	/**
 	* 调用除法方法*/
	public BigDecimal div(double value1,double value2){
    	//调用自定义除法方法
    	return div(value1,value2,location);
    }
	//定义除法方法,参数分别为除数和被除数以及商后小数点位数
	public BigDecimal div(double value1,double value2,int b){
    	if(b<0){
        	System.out.println("小数点后位数b必须大于等于0");
    	}
    	BigDecimal b1=new BigDecimal(Double.toString(value1));
    	BigDecimal b2=new BigDecimal(Double.toString(value2));
        //调用除法方法,离小数点后保留b位,并对结果进行四舍五入
        return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP);
	}public BigDecimal sub(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){
    	Anything b=new Anything();
    	System.out.println("俩个数相加结果:"+b.add(-7.5,8.9));
    	System.out.println("俩个数相减结果:"+b.sub(-7.5,8.9));
    	System.out.println("俩个数相乘结果:"+b.mul(-7.5,8.9));
   	 System.out.println("俩个数相除,结果保留小数点后10位:"+b.div(10,2));
    	System.out.println("俩个数相除,结果保留小数点后5位:"+b.div(-7.5,8.9,5));
	}
}

输出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值