Closed. This question needs debugging details。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。

4年前关闭。





我需要一些使用循环四舍五入到相等位置​​的帮助。我有一些有效的代码,但这是一个非常尴尬的方法,我认为它不是很好的编码,确实需要for循环的帮助。

我声明了以上内容,然后将其解析为我的主要课程。

我需要一些帮助来实现一个for循环,以帮助整理这段代码并删除所有的“ if”和“ else if”语句,任何帮助将不胜感激。

谢谢

最佳答案

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


noDecimal在1到10之间时。
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

10-07 16:29