Truncate a float and a double in java

前端 未结 6 546
后悔当初
后悔当初 2020-12-16 01:33

I want to truncate a float and a double value in java.

Following are my requirements: 1. if i have 12.49688f, it should be printed as 12.49 without rounding off 2

相关标签:
6条回答
  • 2020-12-16 01:49
    double d = <some-value>;
    System.out.println(String.format("%.2f", d - 0.005);
    
    0 讨论(0)
  • 2020-12-16 01:50

    I have the same problem using Android, you can use instead:

    DecimalFormat df = new DecimalFormat("##.##");
    df.setRoundingMode(RoundingMode.DOWN);
    

    but for this API Level 9 is required.

    Another fast solution is:

    double number = 12.43543542;
    int aux = (int)(number*100);//1243
    double result = aux/100d;//12.43
    
    0 讨论(0)
  • 2020-12-16 01:51

    try this out-

    DecimalFormat df = new DecimalFormat("##.##");
    df.setRoundingMode(RoundingMode.DOWN);
    System.out.println(df.format(12.49688f));
    System.out.println(df.format(12.456));
    System.out.println(df.format(12.0));
    

    Here, we are using decimal formatter for formating. The roundmode is set to DOWN, so that it will not auto-round the decimal place.

    The expected result is:

    12.49
    12.45
    12
    
    0 讨论(0)
  • 2020-12-16 02:01

    Try using DecimalFormat and set the RoundingMode to match what you need.

    0 讨论(0)
  • 2020-12-16 02:03

    take a look with DecimalFormat() :

    DecimalFormat df = new DecimalFormat("#.##");
    DecimalFormatSymbols dfs = new DecimalFormatSymbols();
    dfs.setDecimalSeparator(',');
    df.setDecimalFormatSymbols(dfs);
    
    0 讨论(0)
  • 2020-12-16 02:12

    Check java.math.BigDecimal.round(MathContext).

    0 讨论(0)
提交回复
热议问题