java中整型、浮点型、char型扩展
怎么区分是什么进制?
二进制:0b开头,eg: int i = 0b10;
八进制:0开头,eg: int k = 010;
十进制:
十六进制:0x开头,eg: int j = 0x10;
浮点数类型在比较时的问题
尽量避免浮点数之间直接进行 == 比较
尽量避免浮点数之间直接进行 == 比较
尽量避免浮点数之间直接进行 == 比较
如果必须要比较浮点数,又不能有误差,如银行业务,可以用BigDecimal类型进行比较。
float f = 123456F; 这样的到f是1.23456
double d = 1.23456, 但是f是不等于d的。
char类型拓展
所有的字符本质还是数字char采用的是Unicode编码,占2个字节。
定义:char c = 'a'; char c2 = '\u0061'; 都是可以的,第一种更符合人性化
从\u0000 到\uFFFF
类型转换
从低到高 byte,short,char -> int -> long -> float -> double
在进行运算的时候,需要先将运算数的类型转为高级的,否则会导致运算结果已经出错,然后再转化成高级类型,结果肯定也是错的。