Closed. This question needs debugging details。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我需要一些使用循环四舍五入到相等位置的帮助。我有一些有效的代码,但这是一个非常尴尬的方法,我认为它不是很好的编码,确实需要for循环的帮助。
我声明了以上内容,然后将其解析为我的主要课程。
我需要一些帮助来实现一个for循环,以帮助整理这段代码并删除所有的“ if”和“ else if”语句,任何帮助将不胜感激。
谢谢
对于
想改善这个问题吗? 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,此代码将产生decimalPlace
值0.01
(1-> 0.1-> 0.01)和格式化程序值#0.00
。10-07 16:29