¿Puedo hacerlo con System.out.print
?
java
formatting
printf
decimal-point
via_point
fuente
fuente
String.format(java.util.Locale.US,"%.2f", val);
Locale.FRANCE
?Locale.US
va demasiado lejos. Si necesita codificar una configuración regional "neutral" para el plegado de mayúsculas, la representación de números, etc., especifiqueLocale.ROOT
. Esto sería apropiado para el texto que será consumido por otro programa, en lugar de ser presentado para usuarios humanos. Para el texto presentado a un usuario, respete su configuración regional, ya sea que la haya especificado explícitamente o sea la predeterminada.Puedes usar
DecimalFormat
. Una forma de usarlo:Otro es construirlo usando el
#.##
formato.Encuentro que todas las opciones de formato son menos legibles que llamar a los métodos de formato, pero eso es una cuestión de preferencia.
fuente
System.out.printf("%.2f", value)
sintaxis? ¿Todavía está por aquí?DecimalFormat
respuestas, inmediatamente pensé que estaba equivocado, pero gracias por aclarar eso.df.setMinimumFractionDigits(2);
para forzar dos dígitosSugeriría usar String.format () si necesita el valor como
String
en su código.Por ejemplo, puede usar
String.format()
de la siguiente manera:fuente
fuente
DecimalFormat df = new DecimalFormat("0.00");
fuente
La salida es de 22.35. Si necesita 3 puntos decimales cámbielo a "% .3f".
fuente
Mucha gente lo ha mencionado
DecimalFormat
. Pero también puede usarloprintf
si tiene una versión reciente de Java:Consulte los documentos en el Formateador para obtener más información sobre la cadena de formato printf .
fuente
Un truco simple es generar una versión más corta de su variable multiplicándola, por ejemplo
100
, redondeándola y dividiéndola100.0
nuevamente. De esta manera genera una variable, con 2 decimales :Este "truco barato" siempre fue lo suficientemente bueno para mí y funciona en cualquier idioma (no soy una persona Java, solo lo estoy aprendiendo).
fuente
Puede usar estos códigos rápidos a continuación que se modificaron al final. Agregue cuántos ceros se refiere después del punto
fuente
Mira DecimalFormat
Aquí hay un ejemplo del tutorial:
Si elige un patrón como "###. ##", obtendrá dos decimales, y creo que los valores se redondean. Deberá mirar el enlace para obtener el formato exacto que desea (por ejemplo, si desea ceros finales)
fuente
A continuación se muestra el código de cómo puede mostrar una salida de datos flotantes con 2 decimales en Java:
fuente
OK - str para flotar.
Salida:
fuente
pequeño programa simple para demostración:
fuente
Simplemente,
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 imprescindible si no desea hacer que su programa se bloquee si luego realiza algún tipo de conversión comofloat f = Float.parseFloat(str);
fuente
Un problema que me tuvo durante una hora o más, encendido
DecimalFormat
: maneja las entradas dobles y flotantes de manera diferente. Incluso el cambio de RoundingMode no ayudó. No soy un experto, pero pensé que podría ayudar a alguien como yo. Terminé usando en suMath.round
lugar. Vea abajo:Salida:
fuente
Prueba esto:-
fuente