基于用户变量在java中形成的小数位

时间:2015-11-02 14:52:41

标签: java

在java中:我在变量中有一些数字和一些所需的小数位(例如,由用户选择), 我需要打印它。

myNumber = 3.987654;
numberOfDecimalPlaces = 4;

我不想这样做

System.out.printf( "%.4f", myNumber);

但我需要使用VARIABLE numberOfDecimalPlaces代替。

非常感谢

3 个答案:

答案 0 :(得分:0)

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

System.out.printf( "%." + numberOfDecimalPlaces + 'f', myNumber);

答案 1 :(得分:0)

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

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

答案 2 :(得分:-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;
}