标签: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