基于用户变量的java小数位格式

基于用户变量的java小数位格式,java,Java,在java中:我在变量中有一些数字和所需的小数位数,例如按用户选择, 我需要把它打印出来 myNumber = 3.987654; numberOfDecimalPlaces = 4; 我不想这样做 System.out.printf( "%.4f", myNumber); 但是我需要使用变量numberOfDecimalPlaces来代替 非常感谢只需使用numberOfDecimalPlaces创建格式字符串: 您可以尝试使用以下方法: 无法理解为什么@wero不是一个好答案,但如果您不

在java中:我在变量中有一些数字和所需的小数位数,例如按用户选择, 我需要把它打印出来

myNumber = 3.987654;
numberOfDecimalPlaces = 4;
我不想这样做

System.out.printf( "%.4f", myNumber);
但是我需要使用变量numberOfDecimalPlaces来代替


非常感谢

只需使用numberOfDecimalPlaces创建格式字符串:

您可以尝试使用以下方法:


无法理解为什么@wero不是一个好答案,但如果您不喜欢使用System.out。也许这个

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(numberOfDecimalPlaces);
nf.setMinimumFractionDigits(numberOfDecimalPlaces);
String toPrint = nf.format(myNumber);

@维维克辛格,这就是他想做的。他说,他不希望它使用静态数字,但希望它动态变化。这完全适用+1我也会这么做,即使我发布了数字格式示例可能的重复
//value is your input number and places for required decimal places

public static double function(double value, int places) {

    if (places < 0) {
        throw new IllegalArgumentException();
    }

    long factor = (long) Math.pow(10, places);
    value = value * factor;
    long tmp = Math.round(value);
    return (double) tmp / factor;
}
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(numberOfDecimalPlaces);
nf.setMinimumFractionDigits(numberOfDecimalPlaces);
String toPrint = nf.format(myNumber);