Forcing BigDecimals to use scientific notation

后端 未结 4 1513
忘掉有多难
忘掉有多难 2020-12-06 08:34

I have this method:

    public void Example(BigDecimal value, int scale){
    BigDecimal x = new BigDecimal(\"0.00001\");
    System.out.println(\"result: \"         


        
4条回答
  •  没有蜡笔的小新
    2020-12-06 08:42

    You can use a DecimalFormat with setMinimumFractionDigits(int scale):

    private static String format(BigDecimal x, int scale) {
      NumberFormat formatter = new DecimalFormat("0.0E0");
      formatter.setRoundingMode(RoundingMode.HALF_UP);
      formatter.setMinimumFractionDigits(scale);
      return formatter.format(x);
    }
    ...
    System.out.println(format(new BigDecimal("0.00001"), 2)); // 1.00E-5
    System.out.println(format(new BigDecimal("0.00001"), 3)); // 1.000E-5
    

提交回复
热议问题