有很多关于将逗号后面的小数舍入到2位小数点或添加前导零的问题。但是,我找不到添加可变数量零的尾随零的内容。
我想要实现的目标:
使用正整数 n ,我希望使用 获得小数1 / n n 逗号后的位数。所以前10个将是:
1/1 = 1 -> 1.0
1/2 = 0.5 -> 0.50
1/3 = 1.333... -> 1.333
1/4 = 0.25 -> 0.2500
1/5 = 0.2 -> 0.20000
1/6 = 0.666... -> 0.666666
1/7 = 0.142... -> 0.1428571
1/8 = 0.125 -> 0.12500000
1/9 = 0.111... -> 0.111111111
1/10 = 0.1 -> 0.1000000000
最好我将结果作为字符串并使用尽可能短的代码。所以没有for循环或所有类型的Formatter设置。最好像String.format(..., n);
或其他一些简短的解决方案。
我确实尝试String.format("%f0", 1./n);
看看它会输出什么,但这只会累加到7位数(不知道如何设置它以及这是否可配置)。因此,对于String.format("%f0", 1./8);
,输出0.1250000
缺少第8个零。
答案 0 :(得分:2)
尝试以下方法:
String.format("%." + n + "f", (1.0/n));
答案 1 :(得分:0)
如果你没有使用“单一”格式,有一个简单的解决方法:分两步创建所需的输出。
1/8案例:
value = "0.125";
padding = "00000";
并返回value + padding
也可以使用String.format()轻松完成填充;有关各种示例,请参阅here。
答案 2 :(得分:0)
使用 NumberFormat class并设置setMaximumFractionDigits
和setMinimumFractionDigits
private static void resolveDecimalPlaces(int i) {
final NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(i);
nf.setMinimumFractionDigits(i);
nf.setRoundingMode(RoundingMode.HALF_UP);
System.out.println(nf.format(1.0 / i));
}