How do I format a number in Java?

前端 未结 9 1751
自闭症患者
自闭症患者 2020-11-22 05:10

How do I format a number in Java?
What are the "Best Practices"?

Will I need to round a number before I format it?

32.302342

9条回答
  •  名媛妹妹
    2020-11-22 05:39

    From this thread, there are different ways to do this:

    double r = 5.1234;
    System.out.println(r); // r is 5.1234
    
    int decimalPlaces = 2;
    BigDecimal bd = new BigDecimal(r);
    
    // setScale is immutable
    bd = bd.setScale(decimalPlaces, BigDecimal.ROUND_HALF_UP);
    r = bd.doubleValue();
    
    System.out.println(r); // r is 5.12
    

    f = (float) (Math.round(n*100.0f)/100.0f);
    

    DecimalFormat df2 = new DecimalFormat( "#,###,###,##0.00" );
    double dd = 100.2397;
    double dd2dec = new Double(df2.format(dd)).doubleValue();
    
    // The value of dd2dec will be 100.24
    

    The DecimalFormat() seems to be the most dynamic way to do it, and it is also very easy to understand when reading others code.

提交回复
热议问题