将用户输入从整数转换为double

时间:2015-01-07 23:26:27

标签: java arrays

我试图让用户输入4个整数值,然后输入4个double值。我一直收到错误“可能有损转换从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();
       }

2 个答案:

答案 0 :(得分:4)

您不应该使用double作为数组的索引。始终使用int作为索引。变化

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

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

答案 1 :(得分:0)

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

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