Format BigDecimal without scientific notation with full precision

前端 未结 4 666
感动是毒
感动是毒 2021-02-06 22:26

I\'d like to convert a BigDecimal to String for printing purposes but print out all digits without scientific notation. For example:

Bi         


        
相关标签:
4条回答
  • 2021-02-06 22:54

    To preserve the precision for a BigDecimal you need to pass the value in as a String

    BigDecimal d = new BigDecimal("12334535345456700.12345634534534578901");
    System.out.println(d.toPlainString());
    
    0 讨论(0)
  • 2021-02-06 23:04

    You want to use a DecimalFormat:

    DecimalFormat df = new DecimalFormat("#.#");  
    String output = df .format(myBD);
    System.out.println(value + " " + output);
    
    0 讨论(0)
  • 2021-02-06 23:19

    You could use this

    BigDecimal d = BigDecimal.valueOf(12334535345456700.12345634534534578901);
    String out= d.toPlainString();
    System.out.println(out);
    
    0 讨论(0)
  • 2021-02-06 23:20

    The BigDecimal class has a toPlainString method. Call this method instead of the standard toString and it will print out the full number without scientific notation.

    Example

    BigDecimal b = new BigDecimal("4930592405923095023950238502395.3259023950235902");
    System.out.println(b.toPlainString());
    
    Output: 4930592405923095023950238502395.3259023950235902
    
    0 讨论(0)
提交回复
热议问题