在十进制后添加n个零

我需要给出用户输入的数字的准确性,直到几位数。 就像用户输入一些随机值并给出他想要精确到三位数然后我需要将数字四舍五入到小数点后三位。 所以我做了这样的事

int index = value.indexOf('.'); if (index >= 0) { String fractional = value.substring(index); if (fractional.length() > decimalPlaces) { floatValue = roundOffDecimals(floatValue, decimalPlaces); } } retVal = new Float(floatValue); 

但是当用户输入一些值但不输入任何十进制值时,我需要将其显示为令人沮丧的值,零作为小数位数。 喜欢15是他的号码,3是他的准确性然后我需要显示数字为15.000

当它始终改变时,我无法在小数点后显示零。 请帮忙。 我试过DeciamlFormat df = new DecimalFormat(“”,#。##); 但需要静态值。 而且我的准确性在不断变化

任何帮助将不胜感激。

您可以创建一个返回小数的确切格式的方法。 这是一个例子:

 public String formatNumber(int decimals, double number) { StringBuilder sb = new StringBuilder(decimals + 2); sb.append("#."); for(int i = 0; i < decimals; i++) { sb.append("0"); } return new DecimalFormat(sb.toString()).format(number); } 

如果您不需要经常更改小数值,则可以将方法更改为:

 public DecimalFormat getDecimalFormat(int decimals) { StringBuilder sb = new StringBuilder(decimals + 2); sb.append("#."); for(int i = 0; i < decimals; i++) { sb.append("0"); } return new DecimalFormat(sb.toString()); } 

您确实可以使用NumberFormat来执行此操作

 double amount = 15; NumberFormat formatter = new DecimalFormat("#0.000"); System.out.println("The Decimal Value is:"+formatter.format(amount));