我想在使用DemalFormat时保持尾随零



下面的代码是我尝试将我的三个双打转换为一个格式,其中它们总是有四个小数点的位置(因为我需要用四个小数点打印它们,以使其本来可以成为一个简单分配(,即使原始双重小数点之后的所有数字为0-如任何整数中。我认为我也许可以使用setMinimumFractionDigits((方法来防止DemalFormat消除尾随的零 - 但它没有工作:" 3.0"仍然被打印出来,而不是我想要的:" 3.0000"。我意识到,在我的setMinimumFractionDigits((方法的实例下,实际上什么都不做。

(十进制位置的数字并不是所有零都不是问题;代码正按照我想要的方式工作。(

........是否有简单的修复?可能有;我不太了解我在这里使用的方法。

           double  mean = mean(numbers);
            double variance = variance(numbers, mean);
            double sd = sd(variance); 
            DecimalFormat meanFormatted = new DecimalFormat("#.####");
            meanFormatted.setMinimumFractionDigits(4);
            mean = Double.valueOf(meanFormatted.format(mean));
            DecimalFormat varianceFormatted = new DecimalFormat("#.####");
            varianceFormatted.setMinimumFractionDigits(4);
            variance = Double.valueOf(varianceFormatted.format(variance));
            DecimalFormat sdFormatted = new DecimalFormat("#.####");
            sdFormatted.setMinimumFractionDigits(4);
            sd = Double.valueOf(sdFormatted.format(sd));

请参阅此用法

   double d = 12.3;
   DecimalFormat meanFormatted = new DecimalFormat("#.0000");
   System.out.println (meanFormatted.format (d));

找到了一个解决方案:

      double mean = mean(numbers);
        double variance = variance(numbers, mean);
        double sd = sd(variance); 
        Formatter transform = new Formatter();
        Formatter transform1 = new Formatter();
        Formatter transform2 = new Formatter();
        transform.format("%.4f", mean);
        transform1.format("%.4f", variance);
        transform2.format("%.4f", sd);
        System.out.printf("nMean = %sn", transform);
        System.out.printf("Variance = %sn", transform1);
        System.out.printf("Standard deviation = %sn", transform2);

相关内容

  • 没有找到相关文章

最新更新