如何在Java中保留n个小数位

mad*_*man 3 java double decimal rounding digits

嗨所有这可能是一个微不足道的问题,但至于现在我找不到任何解决方案.所以请求你的帮助!

我想要得到的是一个特定的编码表,如下所示:

0.000
0.100
0.200
Run Code Online (Sandbox Code Playgroud)

我需要跟踪零,因为我将使用它们来重建特定数组的一部分.创建这些数字的原始循环是:

for(int k=0;k<m_0;k++){
    for(int l=0;l<m_1;l++){
        for(int a=0;a<a1;a++){

            Y[x-1]=0.1*k+0.01*l+0.001*a;
            x++;

        }

    }

}
Run Code Online (Sandbox Code Playgroud)

问题!我无法在小数位后修复零,而不是上面描述的表我得到以下:

0.0
0.1
0.2
Run Code Online (Sandbox Code Playgroud)

作为解决方案,我尝试使用BigDecimal和DecimalFormat但没有成功.有什么建议?

UPD很少说出我想要做的事情.我正在编码特定的数组到数组和返回索引对应.例如0.100将被分解为1 and 0 and 0并用作数组索引标记,如:

Array1[Method(1,0,0,Y(i)][Method(1,0,0,Y(i))]=Array2[1][0][0]

所以我需要一个适合分配数组索引和字符串的输出不会做的交易.

rge*_*man 7

这个DecimalFormat班级是正确的地方.你只需要正确的格式.

DecimalFormat df = new DecimalFormat("0.000");
System.out.println(df.format(0.1));
Run Code Online (Sandbox Code Playgroud)

输出:

0.100
Run Code Online (Sandbox Code Playgroud)