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