【问题标题】:How to keep n decimal places in Java如何在Java中保留n个小数位
【发布时间】:2023-03-22 17:50:01
【问题描述】:

大家好,这可能是一个微不足道的问题,但目前我找不到任何解决方案。所以寻求您的帮助!

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

0.000
0.100
0.200

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

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++;
            
        }
        
    }
    
}

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

0.0
0.1
0.2

作为一种解决方案,我尝试使用 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]

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

【问题讨论】:

  • DecimalFormat 类似乎如下所述。您能否发布您正在尝试做的事情,以便我们了解它失败的原因?
  • 嗨,Jeff,我已经在更新部分描述了我想要实现的目标。我试图从 1,0 和 0 之类的 .100 个数组元素中获取稍后。这就是为什么浮动零至关重要。

标签: java double decimal rounding digits


【解决方案1】:

DecimalFormat class 是查看的正确位置。你只需要正确的格式。

DecimalFormat df = new DecimalFormat("0.000");
System.out.println(df.format(0.1));

输出:

0.100

【讨论】:

    【解决方案2】:

    作为 DecimalFormat 类的替代方案,我想提出以下建议(我经常使用):

    第 1 步:创建一个允许我指定要保留的单位数量的函数。这是这个函数的一个副本。

    public static String format(Number n) {
            NumberFormat format = DecimalFormat.getInstance();
            format.setRoundingMode(RoundingMode.FLOOR);
            format.setMinimumFractionDigits(0);
            format.setMaximumFractionDigits(2);
            return format.format(n);
        }
    

    第 2 步:只要您有任何要格式化的输出,就调用该函数。下面是一个使用此函数设置适当小数位长度的简单示例:

    System.out.println("Based on this, the wind chill index was calculated to be " + format(chill));    
    

    请注意,您可以简单地更改行:

    format.setMaximumFractionDigits(2);
    

    format.setMaximumFractionDigits(n);
    

    取决于您想要的十进制长度。

    【讨论】:

      【解决方案3】:

      当你打印数字时,你可以使用这个:

      System.out.format("%.3f", yourDecimalNumber);
      

      【讨论】:

        猜你喜欢
        • 2023-03-05
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 2022-10-12
        • 1970-01-01
        • 1970-01-01
        • 2015-08-25
        • 2014-02-08
        相关资源
        最近更新 更多