Round number to only first decimal place

前端 未结 3 574
渐次进展
渐次进展 2021-01-21 10:17

I would like to know the available phone memory, so I wrote this code.

File path2 = Environment.getDataDirectory();
StatFs stat2 = new StatFs(path.getPath());
lo         


        
相关标签:
3条回答
  • 2021-01-21 10:53

    If you need the value for display purpose, use NumberFormat (see answer by Adam Arnold).

    For numeric rounding (producing the rounded number), use BigDecimal:

    double num = 3.141592653589793d;
    double rounded = BigDecimal.valueOf(num).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
    
    0 讨论(0)
  • 2021-01-21 11:03

    Have you tried using free = Math.round(free * 10) / 10d; instead of free = Math.round(size * 10) / 10d;? I don't see size as a defined variable.

    A simple test of

    double free = 5.654707363;
    free = Math.round(free * 10) / 10d;
    System.out.println(free);
    

    outputs 5.7.

    0 讨论(0)
  • 2021-01-21 11:09

    If I understood your question right you need NumberFormat here:

    NumberFormat nf = NumberFormat.getInstance();
    nf.setMaximumFractionDigits(1);
    nf.format(5.654707363);
    

    produces 5,7

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