Java自学笔记:浮点数float

1. 浮点数介绍

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

2. 浮点类型

请添加图片描述

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

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); //输出一个很小的值。
   	}
   }
} 
<think>好的,我现在需要回答用户关于如何在Java中创建float类型数组的问题。首先,我得回想一下Java中数组的基本语法。记得在Java中,声明数组需要指定类型和大小,然后进行初始化。 用户问的是float数组,所以应该使用float类型。不过,Javafloat类型需要在数字后面加上f或F,比如1.0f,否则会被默认成double。这点需要注意,避免编译错误。 接下来,我应该分步骤说明不同的创建方法。首先是最基本的静态初始化,直接在大括号里列出元素。比如float[] arr = {1.0f, 2.5f};。然后是动态初始化,先声明数组的大小,再逐个赋值。例如float[] arr = new float[3];,然后通过索引赋值。 另外,用户可能需要知道如何用循环来初始化数组,特别是当数组较大时。比如使用for循环来填充数组的值,或者使用Arrays.fill方法快速填充默认值。这些方法都能提高效率,特别是处理大量数据时。 还要注意Java的数组是固定长度的,一旦创建后大小不能改变。如果需要动态调整,可能需要使用ArrayList,但用户明确问的是数组,所以这部分暂时不提。 此外,用户提供的引用中有提到HashMap的构造函数,虽然和数组无关,但可能需要确保回答中提到的语法正确,比如使用正确的类型声明和初始化方式。同时,引用中的代码示例可能帮助用户理解如何正确使用工具函数,但这里主要关注数组的创建。 最后,检查是否有遗漏的方法,比如是否可以使用Java 8的Stream API来生成数组,但考虑到用户可能更关注基础方法,先不涉及高级特性。保持回答简洁明了,分步骤说明不同的创建方式,并给出示例代码,这样用户能清楚每种方法的用法。</think>在Java中创建float类型数组主要有以下三种常用方法: ### 方法一:静态初始化(直接赋值) 直接声明并初始化数组元素: ```java float[] temperatures = { 36.5f, 37.0f, 38.2f }; // 数组长度自动确定为3 ``` ### 方法二:动态初始化(指定长度) 先声明数组长度,后续逐个赋值: ```java float[] measurements = new float[5]; // 创建5个元素的数组 measurements[0] = 1.8f; measurements[1] = 3.14f; // 未赋值的元素默认为0.0f ``` ### 方法三:循环初始化 适合批量初始化或生成序列值: ```java float[] waveData = new float[100]; for(int i=0; i<100; i++) { waveData[i] = (float) Math.sin(i * 0.1f); } ``` ### 注意事项: 1. 必须显式添加`f`后缀表示float类型,否则会报类型不匹配错误 2. 数组索引从0开始,最大索引为`数组长度-1` 3. 可以使用`Arrays`工具类进行快速操作: ```java import java.util.Arrays; float[] data = new float[10]; Arrays.fill(data, 0.5f); // 所有元素设为0.5 ``` 对于需要动态调整大小的场景,建议使用`ArrayList<Float>`,但基础数组在性能敏感场景(如图像处理[^4])中仍是更好的选择。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值