• 欢迎光临~

Java数据类型扩展

开发技术 开发技术 2022-07-16 次浏览

数据类型扩展

整数


如何表示二进制,八进制,十六进制

二进制 0b 十进制 八进制 0 十六进制:0x

public class Demo01 {
    public static void main(String[] args) {
        int i1=10;
        int i2=010;//八进制
        int i3=0x10;//十六进制 0~9 A~F
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("************************************");

    }
}

运行结果:
Java数据类型扩展

浮点数


银行业务怎么表示?

如果用浮点数来表示,会出现以下问题:

public class Demo02 {
    public static void main(String[] args) {
        float f=0.1f;//0.1
        double d=1.0/10;//0.1
        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);
        System.out.println("************************************");
        float f1=23333333333333333f;
        double d1=f1+1;
        System.out.println(f1);
        System.out.println(d1);
        System.out.println(f1==d1);
        System.out.println("************************************");
    }
}

运行结果:
Java数据类型扩展

由运行结果可以明显看出,f和d在逻辑上都等于0.1,但是(fd)的结果是false;d1=f1+1,但是(f1d1)的结果是true。这是因为float的精度是有限的,所有表示出来的点是离散的,在与double比较时和舍入误差,与最后的结果的关系时接近但不等于。所以最好完全使用浮点数进行比较。

现在,在银行表示钱时,一般使用数学工具类:BigDecimal

字符


由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

由低到高的顺序为:

byte,short,char,int,long,float,double

运算中,不同类型的数据先转化为同一类型,然后进行运算。

public class Demo03 {
    public static void main(String[] args) {
        char c1='a';
        char c2='中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
        System.out.println("************************************");
        char c3='u0061';
        System.out.println(c3);
    }
}

运行结果:
Java数据类型扩展

注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题

程序员灯塔
转载请注明原文链接:Java数据类型扩展
喜欢 (0)