返回一个范围以与BigDecimal进行比较

时间:2012-10-08 20:16:18

标签: java bigdecimal

在我的代码中,用户使用此方法进入指定的温度范围(默认范围为0 - 100):

public class range {   
     public void rangeset ()
      {
        int range1 = 0;
        int range2 = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        range1 = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        range2 = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

      HW_5.mainMenureturn();

    }//end rangeset method (instance method)

}//range class

再往下,我有一个输入,询问用户他们想要转换为华氏温度的号码。

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

所以,我想要做的是确保他们输入的数字(这是一个BigDecimal)落在另一个方法中指定的范围内。

1)如何使用 rangeset 方法返回范围的起始编号和范围的结束编号,因为您无法返回两个值?

2)然后如何使用这些返回值来检查 fahrenheit2centigrade 方法中的BigDecimal是否属于这些值?

请要求澄清。感谢。

1 个答案:

答案 0 :(得分:1)

这是一个范围问题。目前,您在rangeset()方法中声明了两个范围变量,这意味着它们仅在方法的“范围”内可见(也就是说只有该方法可以访问这些变量)。

你应该考虑做的是让整个班级都能看到这些变量。

public class range {   
     private int lowerBound;
     private int upperBound;

     public void rangeset ()
      {
        int lowerBound = 0;
        int upperBound = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        lowerBound = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        upperBound = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

         HW_5.mainMenureturn();

       }//end rangeset method (instance method)

    public int getLowerBound()
    {
        return lowerBound;
    }

    public int getUpperBound()
    {
        return upperBound;
    }

}//range class

一旦你以这种方式设置了东西,就可以在主类中创建一个新的range类,在其上调用相关的方法,并使用你的getter方法来提取你关心的数据。类似的东西:

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");
        range myRange = new range();
        myRange.rangeset();
        System.out.printf("%d - %d", myRange.getLowerBound(), myRange.getUpperBound());


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

聚苯乙烯。通常你应该使用大写字母来开始你的类名,即。 Range代替range