Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java方法根据参数的类型确定输出char的次数_Java_Methods_Parameter Passing_Rounding - Fatal编程技术网

Java方法根据参数的类型确定输出char的次数

Java方法根据参数的类型确定输出char的次数,java,methods,parameter-passing,rounding,Java,Methods,Parameter Passing,Rounding,我已经做了一些搜索,我无法决定如何做我想做的事情 我有一个四舍五入数字的方法,它采用参数numberToRound和decimalPlaces,现在它被硬编码为四舍五入到小数点后4位,但我需要它是动态的。因此,如果用round(3.1415926536,3)调用它,它将四舍五入到小数点后3位,而不是4位,但我不知道如何让Java接受3位,并理解我希望以任何方式打印或处理000位 有什么办法吗?下面是我键入的示例代码,但它被硬编码到4个位置,因为我尝试的任何东西都无法正确编译 public cla

我已经做了一些搜索,我无法决定如何做我想做的事情

我有一个四舍五入数字的方法,它采用参数numberToRound和decimalPlaces,现在它被硬编码为四舍五入到小数点后4位,但我需要它是动态的。因此,如果用round(3.1415926536,3)调用它,它将四舍五入到小数点后3位,而不是4位,但我不知道如何让Java接受3位,并理解我希望以任何方式打印或处理000位

有什么办法吗?下面是我键入的示例代码,但它被硬编码到4个位置,因为我尝试的任何东西都无法正确编译

public class round
{
  public static void main(String[] args) 
  {
      System.out.println("pi rounded to 3 places is " + roundPI(3.1415926536, 3));
  }
  public static double roundPI(double numberToRound, int decimalPlaces)
  {

    numberToRound= (double)Math.round(numberToRound*10000)/10000;
    return numberToRound;
  }
}
电流输出

四舍五入到3位的pi为3.1416

我考虑过用10*100这样的数学函数来计算1000,它会四舍五入到3,但是如果我需要4、5位小数,甚至2位小数,我仍然需要它来计算它需要乘以什么,而不需要硬编码一英里长的if语句来处理,如果我把我的四舍五入改成intrest计算器,用户决定将其四舍五入到10或12位,甚至更多或更少,比如小数点后1位

powerOfTen    = Math.pow(10,decimalPlaces);
numberToRound = (double)Math.round(numberToRound * powerOfTen) / powerOfTen;

这将四舍五入到正确的位置数。但在打印时,还需要确保打印正确数量的尾随零。为此,您可以使用
System.out.printf

完美地工作,或者至少在小数点位用完之前。通过一轮测试,我的成绩超过了10分(Math.PI,12)