2015-12-03 30 views
0

我需要一些帮助,使用循环舍入到相等的位置。我有一些可行的代码,但这是一个非常尴尬的方法,我不认为这是好的编码,真的需要一些for循环的帮助。格式位置 - java

我已经声明上述,我会将其解析为我的主类。

我需要实现一个for循环,帮助整齐此代码,并删除所有的“如果”和“否则,如果”声明,任何帮助将非常感谢一些帮助。

谢谢

+0

你想要**这个值吗?或者你想要**格式**吗? –

+0

根据用户输入格式化它们。 1-10 – Mecroth

回答

1

你似乎有两种截然不同的情况:

  1. noDecimal是1到10之间
  2. noDecimal为0

因此,你的代码需要看起来像这样:

double decimalPlace = noDecimal; 
DecimalFormat formatter = new DecimalFormat("##.##########"); 

if (noDecimal == 0) { 
    decimalPlace = 0.00000000000000000000000000000000000000000001; 
} 
else { 
    decimalPlace = 1; 
    StringBuilder formatString = new StringBuilder(); 
    formatString.append("#0."); 
    for(int i = 0; i < noDecimal; i++) { 
     formatString.append("0"); 
     decimalPlace /= 10; 
    }  
    formatter = new DecimalFormat(formatString.toString()); 
} 

对于noDecimal的值为2,此代码将产生一个decimalPlace0.01(1 - > 0.1 - > 0.01)和格式化程序值#0.00

+0

是,清除了这一点,这是答案后 - 我不够快,无法跟上你=),但是这是它是如何工作的^^ –

+0

@MartinFrank:有问题的标题和内容真的不匹配。 – npinti