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