在java中:我在变量中有一些数字和一些所需的小数位(例如,由用户选择), 我需要打印它。
myNumber = 3.987654;
numberOfDecimalPlaces = 4;
我不想这样做
System.out.printf( "%.4f", myNumber);
但我需要使用VARIABLE numberOfDecimalPlaces
代替。
非常感谢
答案 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;
}