Java 将用户输入从整数转换为双精度

Java 将用户输入从整数转换为双精度,java,arrays,Java,Arrays,我试图要求用户输入4个整数值,后跟4个双数值。我不断得到错误“从double到int的可能有损转换”。我尝试过不同的方法,但不理解简单的转换。也。。有没有更好的办法?任何对我的建议都是有帮助的。最终,我会打印出这些数据的值 import java.util.Scanner; public class calculations { public static void main(String[] args) { Scanner keyboard = new Scanner

我试图要求用户输入4个整数值,后跟4个双数值。我不断得到错误“从double到int的可能有损转换”。我尝试过不同的方法,但不理解简单的转换。也。。有没有更好的办法?任何对我的建议都是有帮助的。最终,我会打印出这些数据的值

import java.util.Scanner;

public class calculations {
    public static void main(String[] args) {

       Scanner keyboard = new Scanner(System.in);

       int[] intNumbers = new int[4];

       // Prompt user to enter 4 integer values here
       System.out.println("Enter 4 integer numbers below");

       // intNumbers only excepts 4 values with the for loop
       for (int i = 0; i < 4 && keyboard.hasNextInt(); i++) {
           intNumbers[i] = keyboard.nextInt();
       }

       double[] dblNumbers = new double[4];

       // Prompt users to enter 4 double values here
       System.out.println("Enter 4 double numbers below");

       // dblNumbers only excepts 4 values with the for loop
       for (double i = 0; i < 4 && keyboard.hasNextDouble(); i++) {
           dblNumbers[i] = keyboard.nextDouble();
       }
import java.util.Scanner;
公共类计算{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
int[]intNumbers=新的int[4];
//提示用户在此处输入4个整数值
System.out.println(“在下面输入4个整数”);
//intNumbers在for循环中仅例外4个值
对于(int i=0;i<4&&keyboard.hasNextInt();i++){
intNumbers[i]=keyboard.nextInt();
}
double[]dblNumbers=新的双精度[4];
//提示用户在此处输入4个双精度值
System.out.println(“在下面输入4个双精度数字”);
//dblNumbers仅在for循环中包含4个值
对于(双i=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();
}

您不应该将
双精度
用作数组的索引。始终使用
int
作为索引。更改

for (double i = 0; i < 4 && keyboard.hasNextDouble(); i++) {
    dblNumbers[i] = keyboard.nextDouble();
}
for(双i=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();
}

//vvv
对于(int i=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();
}

您不应该将
双精度
用作数组的索引。始终使用
int
作为索引。更改

for (double i = 0; i < 4 && keyboard.hasNextDouble(); i++) {
    dblNumbers[i] = keyboard.nextDouble();
}
for(双i=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();
}

//vvv
对于(int i=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();
}

您在for循环中使用Double,这不是一个好主意。数组索引总是以int为单位,因此如果您为它指定Double,它将给出“从Double到int的可能损失转换”

for(inti=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();

您在for循环中使用Double,这不是一个好主意。数组索引总是以int为单位,因此如果您为它指定Double,它将给出“从Double到int的可能损失转换”

for(inti=0;i<4&&keyboard.hasNextDouble();i++){
dblNumbers[i]=keyboard.nextDouble();

那么我应该怎么做呢?因为我需要提示用户输入4个整数和4个双精度。也许数组不是最好的主意?@MarcusBurkhart不要混淆数组中的索引和值。你认为
dblNumbers[I]
的意思是?@MarcusBurkhart您的方法通常是正确的,但是数组的索引始终是
int
,而不管您需要存储在数组中的类型是什么。请注意
双精度
是如何从
扫描仪
中读取的。那么,我应该怎么做呢?因为我需要提示用户输入4个整数和4倍。也许数组不是最好的主意?@MarcusBurkhart不要混淆数组中的索引和值。你认为
dblNumbers[i]
的意思是?@MarcusBurkhart您的方法通常是正确的,但是数组的索引始终是
int
,而不管您需要存储在数组中的类型是什么。请注意
双精度
是如何从
扫描仪读取的。
for (int i = 0; i < 4 && keyboard.hasNextDouble(); i++) {         
    dblNumbers[i] = keyboard.nextDouble();