Java - Limitar decimales en un Jtextfield

 
Vista:
Imágen de perfil de Julián

Limitar decimales en un Jtextfield

Publicado por Julián (10 intervenciones) el 20/07/2022 00:12:57
Buen día colegas, cordial saludo

Acudo al foro porque estoy aprendiendo programación y se me presentó un problema con respecto a el límite de los decimales, para mi código necesito aproximadamente 5, pero no encuentro alguna solución por la web, llevo varios días con varios tutoriales y no he encontrado solución, espero que alguno pueda darme alguna solución pero pues más importante aún me explique para ir aprendiendo y absorbiendo estos conocimientos, gracias.

El código que tengo es:

1
2
3
4
5
6
7
8
9
10
11
12
double NumAa=Double.parseDouble(CampoAa.getText());
        double NumAv=Double.parseDouble(CampoAv.getText());
        double NumFa=Double.parseDouble(CampoFa.getText());
        double NumFv=Double.parseDouble(CampoFv.getText());
 
 
 
        CampoT0.setText(String.valueOf(0.1*((NumAv*NumFv)/(NumAa*NumFa))));
 
        CampoTc.setText(String.valueOf(0.48*((NumAv*NumFv)/(NumAa*NumFa))));
 
        CampoTL.setText(String.valueOf(2.4*NumFv));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Limitar decimales en un Jtextfield

Publicado por Kabuto (1381 intervenciones) el 20/07/2022 11:35:14
Para limitar los decimales en el resultado que tú calculas, puedes usar String.format()
Ese método te permite aplicar formato a la cadena usando unos caracteres comodines.

Si por ejemplo indicamos:
1
2
double resultado = 456 * 0.567;
String.format("Resultado = %.5f", resultado);

El carácter % es el carácter comodín y será sustituido por el valor que tenga la variable resultado
Y como al comodín le hemos dado la indicación ".5f", con eso le estamos diciendo que queremos un formato de 5 decimales.
Si resultado tiene más decimales, automáticamente se hará un redondeo (maravilloso, eh? ;) )
Y si tuviera menos, se autocompletará con ceros para cubrir esos 5 decimales.


Te dejo un código muy sencillo para que puedas ejecutar y ver en funcionamiento.
Marco en negrita la línea donde aplicamos el formato.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class Limitar5Decimales extends JFrame {
 
	private JTextField origen, destino;
	private JButton calcular;
 
	public Limitar5Decimales() {
		origen = new JTextField(10);
		destino = new JTextField(10);
		destino.setEditable(false);
		calcular = new JButton("Calcular");
		calcular.addActionListener(new AccionCalcular());
 
		JPanel pnOrigen = new JPanel();
		pnOrigen.add(origen);
		pnOrigen.setBorder(BorderFactory.createEmptyBorder(20, 60, 10 ,60));
 
		JPanel pnCalcular = new JPanel();
		pnCalcular.add(calcular);
		pnCalcular.setBorder(BorderFactory.createEmptyBorder(10, 60, 10 ,60));
 
		JPanel pnDestino = new JPanel();
		pnDestino.add(destino);
		pnDestino.setBorder(BorderFactory.createEmptyBorder(10, 60, 20 ,60));
 
		setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
		add(pnOrigen); add(pnCalcular); add(pnDestino);
 
		setTitle("5 Decimales");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
 
	private class AccionCalcular implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			double valorOrigen = Double.parseDouble(origen.getText());
			destino.setText(String.format("%.5f", 0.48*valorOrigen));
		}
	}
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new Limitar5Decimales();
			}
		});
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Julián

Limitar decimales en un Jtextfield

Publicado por Julián (10 intervenciones) el 20/07/2022 18:01:53
Muchas gracias, me sirvió a la perfección.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar