我正在尝试编写一个程序,将双精度(由用户输入(与常量 Math.PI 进行比较,在将两个值转换为字符串然后逐个字符比较它们之后。我收到错误,但我无法看到我应该在哪里更改我的代码。任何提示/帮助将不胜感激!
import java.util.Scanner;
public class Main {
private static int matches = 0;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter value to compare");
double compare = scan.nextDouble();
compare(compare);
}
public static int compare(double value){
String input = String.valueOf(value);
String original = String.valueOf(3.523);
//String.valueOf(Math.PI);
if(input.charAt(0) == 3){
for(int i = 3; i <= input.length(); i++){
if(input.charAt(i) == (original.charAt(i))){
matches++;
}
}
return matches;
} else
return matches;
}
}
你的问题不清楚
这里的预期行为具体是什么?
我无法在比较方法中理解您的思维过程。
如果您不想将双精度与 Math.PI 进行比较,这很容易,因为双精度是原始变量,您可以使用"=="运算符,只需执行以下操作:
if (scannedValue == Math.PI)
System.out.println ("values are equals");
对于运行时异常,这是因为您没有将正确的双精度变量传递给扫描仪。
https://docs.oracle.com/javase/7/docs/api/java/util/InputMismatchException.html