¿Cómo mostrar una salida de datos flotantes con 2 decimales en Java?



Answers

Puedes usar DecimalFormat . Una forma de usarlo:

DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
System.out.println(df.format(decimalNumber));

Otro es construirlo usando el formato #.## .

Encuentro que todas las opciones de formato son menos legibles que llamar a los métodos de formateo, pero esa es una cuestión de preferencia.

Question

¿Puedo hacerlo con System.out.print ?




double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));



Solo haga String str = System.out.printf("%.2f", val).replace(",", "."); si desea asegurarse de que independientemente de la configuración regional del usuario, siempre obtendrá / mostrará un "." como separador decimal. Esto es obligatorio si no desea que su programa se cuelgue si posteriormente realiza algún tipo de conversión como float f = Float.parseFloat(str);




OK - str para flotar.

package test;

import java.text.DecimalFormat;

public class TestPtz {
  public static void main(String[] args) {
    String preset0 = "0.09,0.20,0.09,0.07";
    String[] thisto = preset0.split(",");    
    float a = (Float.valueOf(thisto[0])).floatValue();
    System.out.println("[Original]: " + a);   
    a = (float) (a + 0.01);

    // Part 1 - for display / debug
    System.out.printf("[Local]: %.2f \n", a);
    // Part 2 - when value requires to be send as it is
    DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(2);
    df.setMaximumFractionDigits(2);
    System.out.println("[Remote]: " + df.format(a));

  }
}

Salida:

run:
[Original]: 0.09
[Local]: 0.10 
[Remote]: 0.10
BUILD SUCCESSFUL (total time: 0 seconds)



float f = 102.236569f; 
DecimalFormat decimalFormat = new DecimalFormat("#.##");
float twoDigitsF = Float.valueOf(decimalFormat.format(f)); // output is 102.24



Mira DecimalFormat

Aquí hay un ejemplo del tutorial:

  DecimalFormat myFormatter = new DecimalFormat(pattern);
  String output = myFormatter.format(value);
  System.out.println(value + "  " + pattern + "  " + output);

Si elige un patrón como "###. ##", obtendrá dos decimales, y creo que los valores se redondean hacia arriba. Deberá consultar el enlace para obtener el formato exacto que desea (por ejemplo, si desea ceros al final)




Related