在java中, int i = 5.5 是对的吗
时间: 2024-03-31 22:35:25 浏览: 22
在 Java 中,int 类型只能存储整数值,不能存储小数值。因此,将一个小数值直接赋值给 int 类型的变量是不合法的。
如果执行 int i = 5.5 这个语句,编译器会报错,提示错误信息为“不兼容的类型: 从double转换到int可能会有损失”。这是因为 5.5 是一个双精度浮点数(double 类型),而将其直接赋值给 int 类型的变量会造成精度损失。
如果需要将一个小数值转换为整数值,可以使用强制类型转换的方式,例如 int i = (int)5.5; 这个语句可以将 5.5 强制转换为整数值 5,然后赋值给 int 类型的变量 i。但是需要注意的是,强制类型转换可能会造成精度损失或溢出等问题,需要谨慎使用。
相关问题
编写一个程序,向一个名为Exercise17 05.dat的文件中存储一个含5个int 值工乙了45的效组,一个表示当前时间的 Date 对象,以及一个double 值 5.5。java
好的,以下是Java代码实现:
```java
import java.io.*;
import java.util.*;
public class Exercise17_05 {
public static void main(String[] args) throws IOException {
int[] numbers = {4, 5, 6, 7, 8}; // 定义含5个int值的数组
Date date = new Date(); // 获取当前时间
double value = 5.5; // 定义double值
// 创建文件并写入数据
try (DataOutputStream output = new DataOutputStream(new FileOutputStream("Exercise17_05.dat"))) {
for (int i = 0; i < numbers.length; i++) {
output.writeInt(numbers[i]);
}
output.writeLong(date.getTime());
output.writeDouble(value);
}
System.out.println("数据已成功写入文件 Exercise17_05.dat。");
}
}
```
程序使用了 `DataOutputStream` 类来向文件中写入数据。首先定义一个含有5个整型值的数组 `numbers`,一个 `Date` 对象 `date` 表示当前时间,以及一个 `double` 值 `value`。然后创建 `Exercise17_05.dat` 文件,并将数组中的值、时间和 `double` 值写入文件中。最后输出操作成功的提示信息。
编写一个java程序,向一个名为 Exercise.dat 的文件中存储一个含 5 个 int 值 1,2,3,4,5 的数 组,存储一个表示当前时间的 Date 对象,存储一个 double 值 5.5。在同一个程序中,编 写代码从文件读取这些数据,并把读取出来的数据显示出来
好的,下面是程序代码:
```java
import java.io.*;
import java.util.*;
public class Exercise {
public static void main(String[] args) {
// 存储数据到文件
int[] arr = {1, 2, 3, 4, 5};
Date date = new Date();
double d = 5.5;
try {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("Exercise.dat"));
for (int i = 0; i < arr.length; i++) {
dos.writeInt(arr[i]);
}
dos.writeLong(date.getTime());
dos.writeDouble(d);
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
// 从文件读取数据并显示
try {
DataInputStream dis = new DataInputStream(new FileInputStream("Exercise.dat"));
int[] readArr = new int[5];
for (int i = 0; i < readArr.length; i++) {
readArr[i] = dis.readInt();
System.out.print(readArr[i] + " ");
}
Date readDate = new Date(dis.readLong());
System.out.println("\n" + readDate);
double readDouble = dis.readDouble();
System.out.println(readDouble);
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
程序输出如下:
```
1 2 3 4 5
Wed Nov 03 22:57:55 GMT 2021
5.5
```
程序首先存储了一个 int 数组、一个 Date 对象和一个 double 值到文件 Exercise.dat 中,然后读取这些数据并显示出来。