• Java 入门 30 常用API Math 类 System类 BigDecima类(解决精度失真的问题)


    package com.ITheima.API_Object;
    
    public class Test6 {
        public static void main(String[] args) {
            //1 Math.abs(num) 去绝对值 返回整数
            System.out.println(Math.abs(1));
            System.out.println(Math.abs(-1));
    
            //2 Math.ceil(num) 向上取整
            System.out.println(Math.ceil(1.2));//2.0
            System.out.println(Math.ceil(1.8));//2.0
    
            //3 Math.floor(num) 向下取整
            System.out.println(Math.floor(1.3));//1.0
            System.out.println(Math.floor(1.9));//1.0
    
            //4  Math.pow(num1,num2)求指数次方
            System.out.println(Math.pow(2, 3));//8.0
            System.out.println(Math.pow(2, 4));//16.0
    
            //5 Math.round(num)四舍五入
            System.out.println(Math.round(4.888));//5
            System.out.println(Math.round(4.33388));//4
    
            //6 Math.random()
            //求3-9之间的随机数 减加
            System.out.println((Math.random()*7 + 3));
    
    
        }
    }
    View Code

     

    package com.ITheima.API_Object;
    
    import java.lang.reflect.Array;
    import java.util.Arrays;
    
    public class Test7 {
        public static void main(String[] args) {
            System.out.println("程序开始");
    
            //System.exit(0);//JVM终止!
    
            //2 计算机认为 时间有起源:返回1970-1-1:00:00:00 走到此刻的总的毫秒值:时间毫秒值
            long time=System.currentTimeMillis();
            System.out.println(time);
    
            //3 做数组拷贝(了解)
            /**
             * System.array()
             * 参数1:被拷贝的数组
             * 参数2:从那个索引位子开始拷贝
             * 参数3:复制的目标数组
             * 参数4:粘贴位子
             * 参数5:拷贝元素的个数
             */
            int [] arr1={1,2,3,4,5,6,7,8,9};
            int [] arr2=new int[6];//[0,0,0,0,0,0]  ==>[0,0,6,7,8,9]
            System.arraycopy(arr1,5,arr2,3,3);
            System.out.println(Arrays.toString(arr2));
    
    
            System.out.println("程序结束");
        }
    }
    View Code

    BigDecimal

     

     

    package com.ITheima.API_Object;
    
    import java.math.BigDecimal;
    import java.math.RoundingMode;
    
    public class Test8 {
        public static void main(String[] args) {
            //浮点型运算的时候直接使用+ * / 可能会出现数据失真(精度问题)
            System.out.println(0.09 + 0.01);//0.09999999999999999
            System.out.println(1.0 - 0.32);//0.6799999999999999
            System.out.println(1.015 * 100);//101.49999999999999
            System.out.println(1.301 / 100);//0.013009999999999999
    
    
            System.out.println("-----------------------------------");
            double a = 0.1;
            double b = 0.2;
            double c = a + b;
            System.out.println(c);//0.30000000000000004
            System.out.println("----------------");
    
            //包装成浮点类型数据成为大数据对象 BigDecimal
            BigDecimal a1 = BigDecimal.valueOf(a);
            BigDecimal b1 = BigDecimal.valueOf(b);
            //+ add()
            //BigDecimal c1=a1.add(b1);
            //System.out.println(c1);//0.3
            //- subtract
            //BigDecimal c1=a1.subtract(b1);
            //System.out.println(c1);//-0.1
            //* multiply
            //BigDecimal c1=a1.multiply(b1);
            //System.out.println(c1);//0.02
            // /   divide()
            BigDecimal c1=a1.divide(b1);
            System.out.println(c1);//0.5
    
            //BigDecimal 解决精度问题只是手段   目的最后还要转换成double类型
            double rs=c1.doubleValue();
            System.out.println(rs);//0.5
    
            //注意事项:BigDecimal是一定要精度运算的
            BigDecimal a11=BigDecimal.valueOf(10.0);
            BigDecimal a12=BigDecimal.valueOf(3.0);
            /**
             * a11.divide(a12,2, RoundingMode.HALF_UP)
             * 参数1 :除数  参数2 保留小数位数 参数三 舍入模式
             */
            BigDecimal a13=a11.divide(a12,2, RoundingMode.HALF_UP);
            System.out.println(a13);
            System.out.println("-----------------------");
        }
    }
    View Code

  • 相关阅读:
    软件部门每年耗资大约100亿到200多亿美元,但没有研发出任何具有说服力的产品,因此华为决定关闭
    Qt Model/View理解(二)---构造model(细心研读,发现超简单,Model就是做三件事:返回行数量、列数量、data如何显示。然后把model与view联系起来即可,两个例子都是如此)good
    linux 下用find命令查找文件,rm命令删除文件
    北电之死:谁谋杀了华为的对手?——银湖资本(Silver Lake)董事总经理爱德华·詹德出任CEO,既不了解华为,也不重视中国,直截了当地否决了收购华为
    搞定JavaScript正则表达式
    Orleans3.0
    CSS盒模型
    作用域和闭包
    NServiceBus是.Net平台下的开源的消息服务框架
    [1]System.Reflection.Emit
  • 原文地址:https://www.cnblogs.com/lvlisn/p/16419265.html
Copyright © 2020-2023  润新知