int a0=15;//十进制
int a1=015;//以0开头,是八进制
int a2=0x15;//以0x开头,是十六进制
int a3=0b1101;//以0b开头,是二进制
long a4=100L;
char d='\u0067';//'\0067'表示字符,运行结果为a。不常用,一般还是直接写
char b = 'a';
System.out.println((int) b);//转换为整型//97
System.out.println(b);//a
System.out.println(0 + b);//加上数字自动转换为整型97
boolean a1 = true;
boolean a2 = false;
System.out.println(a1 & a2);//与
System.out.println(a1 | a2);//或
System.out.println(a1 ^ a2);//非
float a5=3.00000000F;//float类型的数值有一个后缀F或f,没有后缀则默认为double类型
double a6=1.0/10;//不能写成1!
double a7=314E2;//等于314*10^2,E也可以写成e
double a8=314E-2;//等于314*10^(-2)
浮点数是不精确的,不能用于比较,如果需要比较,请使BigDecimal,方法如下:
import java.math.*;//先导入包
BigDecimal bd1=BigDecimal.valueOf(0.1);
BigDecimal bd2=BigDecimal.valueOf(1.0/10);
System.out.println(bd2==bd3);//false
BigDecimal bd1=BigDecimal.valueOf(0.1);
BigDecimal bd2=BigDecimal.valueOf(1.0/10);
System.out.println(bd1.equals(bd2));//true
BigDecimal bd=BigDecimal.valueOf(1.0);
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);//0.5
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001
打住!打住!其境过清,不可久居!
import java.math.*;
public class TTest {
public static void main(String[] args){
float a=0.1F;
float b=1.0F;
float c=0.1F;
float d=0.2F;
float f=0.3F;
System.out.println(1.0-0.1);
System.out.println(1.0-0.1-0.1);
System.out.println(1.0-0.1-0.1-0.1);
System.out.println(b-a);
System.out.println(b-a-a);
System.out.println(b-2*a);
System.out.println(b-a-c);
System.out.println(b-a-d);
System.out.println(b-a-d-f);
}
}
运行结果
0.9
0.8
0.7000000000000001
0.9
0.79999995
0.8
0.79999995
0.7
0.39999998
千万不要硬记!!!