标签:package public double java 小数点
Java 浮点数类型
就是Java中的小数类型(在内存中 是2进制小数)
精度问题:就是小数点后面的位数
后缀 double d or D
float f or F
double 64位 ,float 32位 double 的精度是float 的两倍
默认类型:double类型
计算有误差 有舍入,不能进行精确计算
package day03;
public class Demo01 {
public static void main(String[] args) {
double pi = 3.1415926535897932384;//超过64位的舍弃
float pipi = 3.141592653897932384F;//超过32为的舍弃
System.out.println(pi);
System.out.println(pipi);
double d=6.6;
System.out.println(d - 6);//0.6000000000000001
}
}package day03;
/**
*s = g*t*t/2
*/
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
double s;
double g = 9.8;
Scanner con = new Scanner(System.in);
System.out.print("请输入时间:");
double t = con.nextDouble();
s = g * t * t / 2;
System.out.println(s + "米");
}
}package day03;
/**
*16进制来表示数好写
*/
public class Demo03 {
public static void main(String[] args) {
int n = 0x7fffffff;
int m = 0x7ffffff0;
System.out.println(n - m);
float fn = 0x7fffffff;
float fm = 0x7ffffff0;
System.out.println(fn - fm);//float 的精度损失
double dn = 0x7fffffff;
double dm = 0x7ffffff0;
System.out.println(dn - dm);//double 的精度更高
}
}char 字符类型
字符就是数!!!
unicode 为每个字符进行编码
Java 字符采用unicode编码,每个字符是一个16位无符号(不是补码,没有负数) 整数 范围 0~65535
package day03;
public class Demo04 {
public static void main(String[] args) {
char c = 100;
System.out.println(c);
char ch = ‘d‘;
System.out.println(ch);
System.out.println((int)‘d‘);//输出d的unicode编码
//特殊字符
c = ‘\n‘;//换行字符
System.out.println(c);
c = ‘\r‘;//回车字符
System.out.println(c);
c = ‘\t‘;//tab字符
System.out.println(c);
c = ‘\\‘;//\字符
System.out.println(c);
c = ‘\‘‘;//‘字符
System.out.println(c);
c = ‘\"‘;//"字符
System.out.println(c);
c = ‘\u0064‘;//16进制Unicode编码 d
System.out.println(c);
//c 是char变量 100是int类型的字面量(默认就是int类型,100L就不是int 类型了而是long)
//int 字面量在不吵过chat范围情况下可以给char变量赋值
c = 100;
c = -1; //变异错误,超范围了 他是无符号的16位
c = ‘d‘ + 1;// 101==> e ,字面量相加, java 按照一个整数处理
System.out.println(c);
int e = 1;
c = ‘d‘ + e;//编译错误,字面量处理和变量的处理不同
}
}布尔类型:
boolean
表述 正true 假 false 状态
package day03;
public class Demo07 {
public static void main(String[] args) {
boolean userd = true; //使用过了,在if语句中就可以判断一个功能有没有使用过
}
}自动类型转换:从小类到大类可以自动转换
强类型转换:小大类到小类需要强制类型转换(会损耗精度==》低位,或者溢出==》高位)
package day03;
import java.util.Random;
public class Demo05 {
public static void main(String[] args) {
char c ;
c = ‘d‘ + 1;
System.out.println(c);
c = ‘d‘ + 2;
System.out.println(c);
c = ‘d‘ + 3;
System.out.println(c);
int n = 0;
c = (char)(‘d‘ + n);
System.out.println(c);
//随机字符
Random random = new Random();
int m = random.nextInt(26);//包含0 不包含26
c = (char)(‘a‘ + m);
System.out.println(c);
long l = 56;
int i;
i = (int)l;//不超过int 范围,没有问题
l = 0x2222222222222222;
i = (int)l;//超过int范围,消去高位
}
}package day03;
public class Demo06 {
public static void main(String[] args) {
//自动数据类型转换(隐含数据类型转换)
int i = -2;
//i = 11111111 11111111 11111111 11111110
System.out.println(Integer.toBinaryString(i));
long l = i;//数据类型转换 ,符号位扩展 :根据符号位进行填充
//l = 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111110
System.out.println(Long.toBinaryString(l));
System.out.println(Long.toBinaryString(i));//自动数据类型转换
byte b = -2;
System.out.println(Integer.toBinaryString((int)b & 0xff));//消去高位 mask
}
}本文出自 “浪漫的偷笑” 博客,请务必保留此出处http://lmdtx.blog.51cto.com/6942028/1698412
标签:package public double java 小数点
原文地址:http://lmdtx.blog.51cto.com/6942028/1698412