八大基本数据类型(所属包:rt.jar):
类型 | 默认值 | 范围 | 位数 | 备注 |
---|---|---|---|---|
short | 0 | 2-15~(215-1) | 16位 | |
int | 0 | 2-31~(231-1) | 32位 | |
long | 0L | 2-63~(263-1) | 64位 | L不区分大小写 |
float | 0.0F | 单精度,可以精确到小数点后7位 | 32位 | F不区分大小写, |
double | 0.0D | 双精度,可以精确到小数点14位 | 64位 | D不区分大小写、绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。 |
boolean | false | 0或1 | 1位 | |
byte | 0 | 2-7~(27-1) | 8位 | |
char | \u0000(即为0) | 最小值:\u0000(即为0) 最大值:\uffff(即为65535) | 16位 | 能够存储任何字符 |
BigInteger和BigDecimal
short 、int、long、float、double 计算注意,因为取值范围和精度的不同,从大转换到小的时候,可能会导致误差,推荐使用java.math包下面的两个类:
BigInteger 整数计算
BigDecimal 浮点型计算
BigDecimal db = new BigDecimal("12");
db.divide(BigDecimal divisor, int scale, int roundingMode);
scale: 结果保留小数位数
roundingMode:有很多种,比如“BigDecimal.ROUND_DOWN” 代表表留小数后面的直接不要了,也有四舍五入,向下取值等等
Math取整
Math.ceil(double a); //向上取整会保留小数点一位`
Math.floor(double a); //向下取整会保留小数点一位`
Math.round(double a); //四舍五入取整`
隐式转换和强制转换
位数低级向位数高级转换—自动转换:隐式转换
byte i = 0;
int a =i;
long b = i;
float c =b;
double d =c;
short j =i;
位数高级到位数低级转换—强制转换
int i=99;
byte b=(byte)i;
char c=(char)i;
float f=i;
double d = f;
f =(float) d;