gpt4 book ai didi

Java:检查输入是否为 double ,但它接受 int 并将其转换为 double

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:56 24 4
gpt4 key购买 nike

因此,我尝试运行这个程序,该程序将检查每个输入,以查看输入是否与正确的类型(int、double 和 boolean)匹配。然而,双重值(value)给我带来了麻烦。 hasextDouble 接受一个 int 值,并且该变量将其转换为 double 值。如果我能得到解决这个问题的任何帮助,以及解释为什么,我不只是想要一个答案,我想理解。

import java.util.Scanner;

public class TestValidInput
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int anInt = 0;
double aDouble = 0.0;
boolean aBoolean = false;

System.out.printf("%nEnter an integer: ");

while(!input.hasNextInt())
{
input.next();
System.out.printf("%nYou must only enter an integer: ");
}

anInt = input.nextInt();

System.out.printf("%n%d%n", anInt);

System.out.printf("%nEnter a double: ");

while(!input.hasNextDouble())
{
input.next();
System.out.printf("%nYou must only enter a double: ");
}

aDouble = input.nextDouble();

System.out.printf("%n%f%n", aDouble);

System.out.printf("%nEnter a true or a false: ");

while(!input.hasNextBoolean())
{
input.next();
System.out.printf("%nYou must only enter a TRUE or FALSE: ");
}

aBoolean = input.nextBoolean();

System.out.printf("%n%b%n", aBoolean);

input.close();

System.exit(0);
}
}

最佳答案

解释原因

with the explanation as to why

由于int值可以表示为double值,因此在java中整数值可以隐式转换为double值,但反之则不行:

double d = 1.0; // valid
double dd = 1; // valid
int i = 1; // valid
int ii = 1.0; // error

如何解决

Any help I can get to solve this

添加检查以确保它不是整数格式:

while(!(input.hasNextDouble() && !input.hasNextInt()))

关于Java:检查输入是否为 double ,但它接受 int 并将其转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com