Ps:float -> double,个人认为应该是虚线,比如:double d = 1.23f; 输出:1.2300000190734863
// 强制转换:
long c=10000000000L; // 100亿
int rs5=(int)c; // 强转可能发生溢出
System.out.println(rs5); // 1410065408
double d=1.23e5; // 123000.0
float f=1.23E5f; // 123000.0
double d1=.2; // 0.2
float f1=1.2; // CE
double d2=1.23f; // 1.2300000190734863
double d3=123L; // 123.0
Ps:long < double (即使long和double都是8字节)(double是在基本数据类型中最大的类型)
// long b=10000000000; // 编译错误,右边的 100 亿默认为 int 类型,但超出 int 范围了,所以会报错,表示 long 需要加 L
double d=56.89895514545787878;
int i=(int)d;
float f=(float)d;
System.out.println(i); // 56
System.out.println(f); // 56.898956
// 对于一个变量进行数据类型转换是取决于该变量的数据类型而不是该变量的值。
// 科学记数法
float f=100000000000000L; // 1.0E14
float f1=103948583923948L; // 1.03948585E14
// 判断 int char
int a = 65;
char c = 'A';
System.out.println(a == c); // true, 并不会报错,但跟类型转换是两码事