-
Math
最终类,提供了基本的数学运算,提供了大量静态方法
//求平均值
System.out.println(Math.abs(-1));
//求第一个参数的第二个参数的次幂(次幂可以是小数)
System.out.println(Math.pow(2,0.5));
//向上取整
System.out.println(Math.ceil(2.45));
//向下取整
System.out.println(Math.floor(2.56));
//四舍五入,结果是整数
System.out.println(Math.round(3.54));
BigDecimal----用于精确运算的类,参数需要是字符串
public class BigDecimalDemo {
//strictfp只能加到方法上
//在底层进行运算时可以把处理的位数提高到80位,最后存储还是64位
public strictfp static void main(String[] args) {
//底层要转成二进制补码,大部分小数的二进制补码是无限位数,但是存储的位数是固定的就不能精确运算。
double d = 2.1-1.98;
//参数是字符串才能做精确运算
BigDecimal bd1 = new BigDecimal("2.1");
BigDecimal bd2 = new BigDecimal("1.98");
System.out.println(bd1.subtract(bd2));
}
}
BigInteger------用于超大数运算
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args) {
//超大数之间的运算
BigInteger in = new BigInteger("454354353483250289504769048239042386847238472397239418795374982379836798375");
BigInteger in1 = new BigInteger("4325082390582680948230942839504590462095823523587234672386532734972349823753429857");
System.out.println(in.multiply(in1));
}
}
DecimalFormat-------进行格式化(使用占位符)
public class DecimalFormatDemo {
public static void main(String[] args) {
double d = 2.324;
//保留两位小数
//0----占位符 0是占位符,如果这个位上有值,就把值展示出来,没值就展示0,不只是0另外数也可以
//#----占位符 如果这个位上有值就把值展示出来,没值就不展示
DecimalFormat df1= new DecimalFormat("#.########");
String s = df1.format(d);
System.out.println(s);
}
}
-
日期(Date\calendar)
- Date
用SimpleDateFormat 去操作日期和字符串可以互相转换(字符串转日期 parse() 日期转字符串format())
public class DateDemo {
public static void main(String[] args) throws ParseException {
//Tue Jul 16 16:42:08 CST 2019 CST---中国标准时区-----上海时间
//得到的就是当前的日期和时间
//指定具体的时间是会加上1900年1月
//警告压制
//方法名上有黑线---过时的-----在未来的版本中不支持
// @SuppressWarnings("deprecation")
// Date date = new Date(2008-1900,8-1,8);
// System.out.println(date);
//字符串转日期
String str="2012-12-12 12:12:12";//1911/1/1
//指定日期转换的格式
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sd.parse(str);
//ParseException: Unparseable date不能解析的日期
//日期转字符串
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
System.out.println(sdf1.format(d));
}
}
- calendar日历类
public class CalendarDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c);//输出内容如下 格里高利历
/*
java.util.GregorianCalendar[time=1563268843263,areFieldsSet=true,areAllFie
ldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offs
et=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=
1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=6,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MON
TH=16,DAY_OF_YEAR=197,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINU
TE=20,SECOND=43,MILLISECOND=263,ZONE_OFFSET=28800000,DST_OFFSET=0]
* */
//得到日历类里的具体的信息
Date date = new Date(2012-1900,12-1,12);
c.setTime(date);
//一个月中的第几天
System.out.println(c.get(Calendar.DAY_OF_MONTH));
}
}
- calendar日历类
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class LocalDateDemo {
public static void main(String[] args) {
//
LocalDate l =LocalDate.now();
//表示加一个月
System.out.println(l.plus(1, ChronoUnit.MONTHS));
}
}