将double与Math.PI进行比较(将double转换为String)

时间:2017-03-29 18:36:06

标签: java compare pi

我正在尝试编写一个程序,将两个值(由用户输入)与常量Math.PI进行比较,然后将两个值都转换为字符串,然后将它们与char进行比较。我收到错误,但我无法看到我应该在哪里更改代码。非常感谢任何提示/帮助!

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;
    }
}

1 个答案:

答案 0 :(得分:0)

您的问题不明确

这里的具体行为是什么?

我无法理解比较方法中的思维过程。

如果你不想将double与Math.PI进行比较,那么很简单,因为double是原始变量,你可以使用“==”运算符,只需这样做:

 if (scannedValue == Math.PI)
          System.out.println ("values are equals");

对于你遇到的运行时异常是因为你没有将正确的双变量传递给你的扫描仪。

https://docs.oracle.com/javase/7/docs/api/java/util/InputMismatchException.html