Java自学笔记:浮点数float

文章目录

  • 1. 浮点数介绍
  • 2. 浮点类型
  • 3. 浮点数细节(5点)
      • 1. 与证书类型相似,java浮类型也有固定的范围和字段长度,不受具体OS的影响。
      • 2. java的浮点型常量**默认为double型**,声明float型常量,**须在后面加‘f’**
      • 3. 浮点型常量有两种表示形式。
      • 4. 通常情况下,应该使用double型,因为它比float型更精确
      • 5. 浮点数使用陷阱: 2.7 和8.1/3 比较

1. 浮点数介绍

  • 可以用来表示一个小数。ex. 1.34,379.0

2. 浮点类型

Java自学笔记:浮点数float_第1张图片

  • 浮点数在机器中存放的形式,浮点数 = 符号位 + 指数位 + 尾数位
  • 尾数部分可能丢失,造成精度损失(小数都是近似值

3. 浮点数细节(5点)

1. 与证书类型相似,java浮类型也有固定的范围和字段长度,不受具体OS的影响。

2. java的浮点型常量默认为double型,声明float型常量,须在后面加‘f’

public class varDetail {

   //编写一个main方法
   public static void main(String[] args) {
   	//java的浮点型常量默认为double型,声明float型常量,须在后面加‘f’
   	float n1 = 1.1; //错的
   	float n2 = 1.1F; //对的
   	double n3 = 1.1; //对的
   	double n4 = 1.1F; //可以,把小的放进大的空间,可以放的进去。
   }
} 

3. 浮点型常量有两种表示形式。

  • 十进制形式: 如: 5.12 512.0f .512 (必须有小数点)
  • 科学计数法形式:如: 5.12e2[相当于5.12 * 10的2次方
    5.12E-2 [5.12 / 10的2次方]
public class varDetail {

   //编写一个main方法
   public static void main(String[] args) {
   	//十进制形式: 如: 5.12    512.0f    .512 (必须有小数点)
   	double n5 = .123; [等价于0.123]
   	System.out.println(5.12e2);  //输出512.0
   	System.out.println(5.12E-2);  //输出0.0512
   }
} 

4. 通常情况下,应该使用double型,因为它比float型更精确

public class varDetail {

   //编写一个main方法
   public static void main(String[] args) {
   	//通常情况下,应该使用double型,因为它比float型更精确。
   	double n9 = 2.1234567851;  //输出2.1234567851【更精确】
   	float n10 = 2.1234567851F; //输出2.1234567
   }
} 

5. 浮点数使用陷阱: 2.7 和8.1/3 比较

  • 重点: 当我们对运算结果为小数的数字进行相等判断时,要小心
  • 应该时以两个数的差值的绝对值,在某个精度范围内判断。
  • 如果是直接查询的小数,或者直接赋值的,是可以直接判断相等。
public class varDetail {

   //编写一个main方法
   public static void main(String[] args) {
   	//浮点数使用陷阱:2.7 和8.1/3 比较
   	double n11 = 2.7;
   	double n12 = 8.1 / 3; 
   	System.out.println(n11);  //输出2.7
   	System.out.println(n12);  //输出2.6999999999997【一个接近2.7的数字】
   	//正确写法
   	if(math.abs(n11 - n12) < 0.000001) {
   		System.out.println("差值非常小,到了我的规定精度,认为是相等的");
   	System.out.println(math.abs(n11 - n12) < 0.000001); //输出一个很小的值。
   	}
   }
} 

你可能感兴趣的:(java,笔记,开发语言)