首页 > 编程语言 >Java基础04:数据类型拓展

Java基础04:数据类型拓展

时间:2024-07-14 21:51:28浏览次数:11  
标签:舍入 Java 04 浮点数 数据类型 System println d1 out

整型拓展

十进制整数,如:99, -500, 0。
八进制整数,要求以 0 开头,如:015。
十六进制数,要求 0x 或 0X 开头,如:0x15 。

//整型
int i=10;
int i2=010;
int i3=0x10;
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16

浮点型拓展

浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

public static void main(String[] args) {
	float f = 0.1f;
	double d = 1.0/10;
	System.out.println(f==d); //false
	float d1 = 2131231231f;
	float d2 = d1+1;
	if (d1==d2) {
		System.out.println("d1==d2");
	} else {
		System.out.println("d1!=d2");
	}
	// 结果是d1==d2
}
主要理由:

由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很
多数字无法精确表示,其结果只能是接近,但不等于;二进制浮点数不能精确的表示0.1,0.01,0.001这样
10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。

最好完全避免使用浮点数比较 !

大数值:Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数
值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

浮点数使用总结:
  1. 默认是double
  2. 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
  3. 避免比较中使用浮点数

字符型拓展

单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。
char 类型用来表示在Unicode编码表中的字符。
Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符。

public static void main(String[] args) {
	char c1 = 'a';
	char c2 = '中';
	System.out.println(c1);
	System.out.println((int) c1); //97
	System.out.println(c2);
	System.out.println((int) c2); //20013
}

Unicode具有从0到65535之间的编码,他们通常用从’u0000’到’uFFFF’之间的十六进制值来表示(前缀为
u表示Unicode)

char c3 = '\u0061';
System.out.println(c3); //a

Java 语言中还允许使用转义字符 ‘’ 来将其后的字符转变为其它的含义,有如下常用转义字符:
image

布尔型拓展

boolean类型(一位,不是一个字节),就是0|1
boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。
boolean 类型用来判断逻辑条件,一般用于程序流程控制。

boolean flag = false;
if(flag){
// true分支
}else{
// false分支
}

标签:舍入,Java,04,浮点数,数据类型,System,println,d1,out
From: https://www.cnblogs.com/Konon/p/18302076

相关文章