码迷,mamicode.com
首页 > 编程语言 > 详细

Java数学

时间:2020-07-26 01:31:27      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:bool   返回   led   调用   oid   字符串类   boolean   xxx   floor   

1. math

package com.qf.demo02;

public class Test2Math {

	public static void main(String[] args) {
		System.out.println(Math.PI);//圆周率,3.141592653589793
		
		System.out.println(Math.abs(100));//绝对值
		System.out.println(Math.abs(-100));
		
		//向上取整
		System.out.println(Math.ceil(3.00001));//返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数。 
		//向下取整
		System.out.println(Math.floor(4.1));
		//四舍五入
		System.out.println(Math.round(3.49));
		
		double num = 3.4;
		System.out.println(Math.floor(num + 0.5));//效果是四舍五入吗?
		
		System.out.println(Math.pow(2, 3));//a的b次方
		System.out.println(Math.pow(3, 2));
		
		System.out.println(Math.sqrt(9));//根号9-->3
		System.out.println(Math.sqrt(8));//根号8-->2倍根号2
		
//		System.out.println(Math.random());//随机数,取值范围:[0,1),随机小数
		//偷偷的看了一下Math.random()的源代码,发现就是new Random对象,调用nextDouble()方法。
		/*
		 * 需求:int
		 * 
		 * 
		 * [0,1)  * 100
		 * --->[0,100) [0,99.999999999]
		 * 直接取整数部分:(int)-->[0,99]
		 * 
		 * 
		 * 取[0,100]的随机数
		 * -->取[0,100.9889988)
		 * -->[0,1)*101-->[0,101)
		 * 			100.99999999999
		 * -->(int)-->[0,100]
		 * 
		 * 
		 * 取[0,10]的随机数
		 * -->取[0,10.999999]
		 * -->[0,1)*11    -->[0,11)
		 * 						10.9999999
		 * -->(int)-->[0,10]
		 * 
		 * 取[5,15]的随机数
		 * --->[0,10]+5--->[5,15]
		 * --->[0,1)*11--->[0,11)
		 * 					10.9999999
		 * --->(int)--->[0,10]
		 * 
		 * 取[3,14]的随机数
		 * --->[0,11]+3
		 * --->[0,1)*12 --->[0,12)
		 * 						11.999999
		 * --->(int)-->[0,11]
		 * 
		 * 取[m,n]之间的随机整数
		 * -->[0,n-m] + m
		 * 
		 * (int)(Math.random()*(n-m+1)+m);//获取[m,n]之间的随机整数的公式
		 */
		
		double d1 = Math.random();//[0,1)
		double d2 = d1 * 100;//乘以100后的取值范围?[0,100)
		
		int i1 = (int)d2;//[0,99]
		
		int i2 = i1 + 3;//[3,102]
		System.out.println((int)(Math.random()*100+3));
		
		System.out.println((int)(Math.random()*101));//[0,100]
		System.out.println((int)(Math.random()*11));//[0,10]
		System.out.println((int)(Math.random()*11+5));
		System.out.println((int)(Math.random()*12+3));
			
		
	}
}

2. random

package com.qf.demo02;

import java.util.Random;

public class Test3Random {

	public static void main(String[] args) {
		//step1:创建Random类的对象
		Random r1 = new Random();
		
		//step2:通过r1调用方法,就能够生成各种各样的随机数
		boolean b1 = r1.nextBoolean();//产生一个boolean类型的随机数
		System.out.println(b1);
		
		double d1 = r1.nextDouble();//产生一个随机double类型,取值范围:[0,1)
		System.out.println(d1);
		
		int i1 = r1.nextInt();//产生一个int类型的随机数
		System.out.println(i1);
		
		int i2 = r1.nextInt(3);//产生一个int类型的随机数:[0,3)
		System.out.println(i2);
		
		
		Random r2 = new Random(10);
		Random r3 = new Random(10);
		System.out.println("-->"+r2.nextInt());
		System.out.println("-->"+r3.nextInt());
	}

}

3. BigDecimal

package com.qf.demo02;

import java.math.BigDecimal;

public class Test4BigDecimal {

	public static void main(String[] args) {
		double d1 = 0.05;
		double d2 = 0.01;
		System.out.println(d1+d2);
		System.out.println(1.0-0.9);
		
		System.out.println(0.1+0.2);
		System.out.println(1.5+0.3);
		
		System.out.println("------------------");
		//BigDecimal,构造BigDecimal对象时候,如果直接使用double类型作为参数,存在精度
//		BigDecimal bd1 =new BigDecimal(0.05); //0.05000000000000000277555756156289135105907917022705078125
//		BigDecimal bd2 = new BigDecimal(0.01); //0.01000000000000000020816681711721685132943093776702880859375
//		System.out.println(bd1);//重写了toString(),显示存储的数值
//		System.out.println(bd2);
		
		BigDecimal bd3 = new BigDecimal("0.05");
		BigDecimal bd4 = new BigDecimal("0.01");
		System.out.println(bd3);
		System.out.println(bd4);
		//加法
		BigDecimal res1 = bd3.add(bd4);//d1+d2--->d1.add(d2)
		System.out.println(res1);
		

		//减法
		BigDecimal res2 = bd3.subtract(bd4);
		System.out.println(res2);
		//乘法
		BigDecimal res3 = bd3.multiply(bd4);
		System.out.println(res3);
		BigDecimal bd5 = new BigDecimal("10");
		BigDecimal bd6 = new BigDecimal("3");
		
		//除不尽的情况,必须明确2个信息:(小数点后保留几位,是否使用四舍五入)
//		BigDecimal res4 = bd5.divide(bd6);
		BigDecimal res5 = bd5.divide(bd6, 2, BigDecimal.ROUND_HALF_UP);
		System.out.println(res5);
		
	}

}

4. date

package com.qf.demo01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test2SimpleDateFormat {

	public static void main(String[] args) throws ParseException {
		Date date = new Date();
		System.out.println(date);//Thu Apr 16 11:00:36 IRKT 2020
		
		
		/*
		 * "2020-04-16"-->"yyyy-MM-dd"
		 * 2020/04/16  --> "yyyy/MM/dd"
		 * 2020年04月16日:"yyyy年MM月dd日"
		 * 2020-04-16 11:01:33-->"yyyy-MM-dd HH:mm:ss"
		 * ....
		 */
		
		/*
		 * SimpleDateFormat类:
		 * Date-->String:日期格式化?就是将一个日期Date对象,按照指定的字符串格式去显示。
		 * 		format(),根据模板,将date日期,转为String字符串类型
		 * 		1.创建SimpleDateFormat对象。可以通过构造方法指定模板(格式):"yyyy-MM-dd"
		 * 			如果没有指定模板,使用系统默认:20-4-16 上午11:09
		 * 		2.sdf.format(date)-->String
		 * 
		 * 
		 * String-->Date:解析?就是将一个文本字符串,解析成一个Date对象。
		 * 		parse(),根据模板,将字符串解析为对应的日期对象,异常。
		 * 		1.同上
		 * 		2.sdf.parse(String)-->date
		 */
		
		//step1:创建格式化对象:
		SimpleDateFormat sdf = new SimpleDateFormat();//默认格式:yy-M-dd 
		
		//step2:调用format方法,将date--->String
		String s1 = sdf.format(date);
		System.out.println(s1);//20-4-16 上午11:09
		
		
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss.SSS");
		String s2 = sdf2.format(date);
		System.out.println(s2);//2020年04月16日 11:22:01.640
		
		
		
		
		//String类型的表示日期的数据--->Date对象
		String src = "2020-05-22";
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
		Date date2 = sdf3.parse(src);//会按照sdf对应的模板来进行格式化
		System.out.println(date2);
		
		
	}

}

  

package com.qf.demo01;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Test3Calendar {

	public static void main(String[] args) {
		//step1:创建Calendar类的对象
		Calendar calendar = new GregorianCalendar();
		//step2:获取所需要的数据
		/*
		 * 语法:calendar.get(XXX);
		 * year-->年
		 * month-->月,+1
		 * dayofmonth-->日期
		 * hourofday-->小时
		 * ....
		 */
		System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
		System.out.println("MONTH: " + (calendar.get(Calendar.MONTH)+1));
		System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
		System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
//		System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));//0上午am,1下午pm
//		System.out.println("HOUR: " + calendar.get(Calendar.HOUR));//12小时制。
		System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));//24小时制
		System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
		System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
		System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));

		/*
		 * 通过Calendar类,可以直接获取年,月,日,时,分,秒。。。。
		 * Date类:
		 * 思考题:通过Calendar类的对象,获取当前的年月日时分秒:拼接成一个字符串:
		 *  2020年04月16日 11:52:33
		 */
		
		String date = calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日";
		String time = calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
		System.out.println(date);
		System.out.println(time);
		
	}

}

  

  

Java数学

标签:bool   返回   led   调用   oid   字符串类   boolean   xxx   floor   

原文地址:https://www.cnblogs.com/yzg-14/p/13377961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!