gpt4 book ai didi

java - Math.sqrt 函数

转载 作者:行者123 更新时间:2023-11-29 08:11:48 25 4
gpt4 key购买 nike

    import javax.swing.JOptionPane;

public class PredefinedClass {
public static void main(String[] args){
do{
String input = JOptionPane.showInputDialog("Enter a character:");
if(input.length() > 1){
JOptionPane.showMessageDialog(null,"Invalid Input. Input a character only.");
}else if(Character.isLetter(input.charAt(0))){
if(Character.isUpperCase(input.charAt(0))){
JOptionPane.showMessageDialog(null,"The character is an Uppercase letter.");
}else if(Character.isLowerCase(input.charAt(0))){
JOptionPane.showMessageDialog(null,"The character is a Lowercase letter.");
}
}else if(Character.isDigit(input.charAt(0))){
JOptionPane.showMessageDialog(null,"The character is a digit."+
"\nThe square root of "+input+" is "+Math.sqrt(input.charAt(0)));

}
}while(JOptionPane.showConfirmDialog(null,"Try again?[Y/N]","Try again?[Y/N]",JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
}
}

当我尝试 9 时,Math.sqrt(input.charAt(0)) 输出 7.54,应该是 3。这是为什么?

最佳答案

input.charAt() 返回字符,而不是数字的数值。这意味着您得到的是 '9',而不是 9ASCII value '9' 的个数是 57,因此您最终要对其求平方根。

改为尝试 Math.sqrt(input.charAt(0) - '0')

如果你想让你的代码更通用一点,考虑使用Integer.valueOf()Double.valueOf()而不是查看单个字符。

关于java - Math.sqrt 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714707/

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