Java SE基础知识(11)

BigDecimal( )

对数据的精度要求比较高的时候可以使用BigDecimal ( )方法。

示例一:

public class MyTest {
    public static void main(String[] args) {

        BigDecimal a = new BigDecimal("1.333333555555");
        BigDecimal b = new BigDecimal("2.366363388888888");
        BigDecimal bigDecimal = a.multiply(b);
        System.out.println(bigDecimal.toString());

    }
}

运行结果:

3.155151711042400217870172840

Process finished with exit code 0

示例二:

public class demo1 {
    public static void main(String[] args) {

                BigDecimal c = new BigDecimal("10");
                BigDecimal d = new BigDecimal("3");
                // BigDecimal divide = c.divide(d);
                BigDecimal e = c.divide(d, 50, BigDecimal.ROUND_FLOOR);
                System.out.println(e);
  }
        }

运行结果:

3.33333333333333333333333333333333333333333333333333


Process finished with exit code 0

示例三:

import java.math.BigDecimal;

public class demo1 {
    public static void main(String[] args) {

        System.out.println(1==0.99999999999999999999999999);
        System.out.println(1==0.99999);

            }
        }

运行结果:

true

false

类 Date

表示特定的瞬间,精确到毫秒。

Date( long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间

​ (称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

​ 给 1970 年 1 月 1 日 00:00:00 计算机元年加上相应的时间量。

import java.math.BigDecimal;
import java.util.Date;

public class demo1 {
    public static void main(String[] args) {
   
        Date date = new Date();    
        System.out.println(date);
   
        Date date1 = new Date(1000*60*60);
        System.out.println(date1);

    }
        }

运行结果:

Tue Aug 04 22:06:48 CST 2020

Thu Jan 01 09:00:00 CST 1970

练习:算一下你来这个世界多少天?

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.util.Date;
import java.util.Scanner;

public class demo1 {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的生日:例如 1990-01-01");
        String birthday = sc.nextLine();
        long time = new SimpleDateFormat("yyyy-MM-dd").parse(birthday).getTime();
        // long time = DateUtils.convertStringToDate(birthday, "yyyy-MM-dd").getTime();
        long now = System.currentTimeMillis();
        System.out.println((now - time) / 1000 / 60 / 60 / 24/365+"年");

        System.out.println("=====================================================");
        //JDK1.8 提供的关于日期的类
        LocalDate birthdayDate = LocalDate.of(1995, 06, 16);
        LocalDate nowDate = LocalDate.now();
        Period period = Period.between(birthdayDate, nowDate);
        int years = period.getYears();
        int months = period.getMonths();
        int days = period.getDays();
        System.out.println(years);
        System.out.println(months);
        System.out.println(days);

    }
        }

import java.util.Calendar;

public class demo1 {
    public static void main(String[] args) {
    Calendar rightNow = Calendar.getInstance();
    //System.out.println(rightNow);
    int year = rightNow.get(Calendar.YEAR);
    int month = rightNow.get(Calendar.MONTH);
    int day = rightNow.get(Calendar.DAY_OF_MONTH);
    int hour = rightNow.get(Calendar.HOUR);
    int minute = rightNow.get(Calendar.MINUTE);
    int s = rightNow.get(Calendar.SECOND);

        System.out.println(year + " "+month + " "+day + " "+hour + " "+minute + " "+s);

}
        }

运行结果:

2020 7 4 10 15 35

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值