格式化地方 - java

时间:2015-12-03 08:14:50

标签: java for-loop decimal

我需要一些帮助,使用循环舍入到相等的位置。我有一些代码可以工作,但它是一个非常笨拙的方法,我不认为它是良好的编码,真的需要一些for循环的帮助。

我已在上面声明,我将解析到我的主要课程。

我需要一些帮助来实现for循环以帮助整理此代码并删除所有“if”和“else if”语句,我们将非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

您似乎有两种不同的情况:

  1. noDecimal介于1到10之间时。
  2. noDecimal为0时。
  3. 因此,您的代码需要看起来像这样:

    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),格式化程序值为{{1 }}