Foros del Web » Programación para mayores de 30 ;) » Java »

¿Escoger un numero de decimales es posible?

Estas en el tema de ¿Escoger un numero de decimales es posible? en el foro de Java en Foros del Web. Hola tengo una duda. Necesito trabajar con 2 decimales, y no encuentro funciones que me permitan escoger un número de decimales para trabajar. Ejemplo tengo ...
  #1 (permalink)  
Antiguo 30/03/2005, 16:39
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta ¿Escoger un numero de decimales es posible?

Hola tengo una duda.

Necesito trabajar con 2 decimales, y no encuentro funciones que me permitan escoger un número de decimales para trabajar.
Ejemplo tengo un resultado 1.150002 y deseo trabajar con dos decimales entonces mi numero seria 1.15

Encuentro estas funciones floor(x) que redondea al entero más grande no mayor que x.

Y la función round(x) que me da el mismo resultado.

Por fa necesito esto urgente pues es para generar tablas y son bastantes números, que de poder trabajar con un numero pequeño de decimales no saldrán todo y unos números me taparan a los otros en la Applet.

Gracias de antemano.
  #2 (permalink)  
Antiguo 31/03/2005, 08:49
 
Fecha de Ingreso: septiembre-2004
Mensajes: 191
Antigüedad: 19 años, 7 meses
Puntos: 1
Podrias utilizar un Number format. Te he creado una clase de prueba para que la mires
Código PHP:
package pruebas;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

public class 
FormateoNumeros {
  public static 
void main(String[] args) {
    
double numero=34643615.9887;
    
NumberFormat nf NumberFormat.getNumberInstance(Locale.GERMAN);
    
//NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
    
DecimalFormat form = (DecimalFormat)nf;
    
form.applyPattern("#,###.00");
    
System.out.println("" form.format(numero));
  }

Donde en el applyPattern eligues la mascara deseada para el mumero.
Si kieres que el formato de los numeros salga en formato español, con separador de milares un punto y separador de decimales la coma deja el Locale.GERMAN.
Si al contrario kieres el formato britanico, separador de milares la coma y de decimales el punto, deja el Locale.ENGLISH

De todos modos, si deseas otra mascara mira en la API de java la clase DecimalFormat y veras diferentes mascaras para representar un real.

saludos

Última edición por sanmi69; 31/03/2005 a las 08:53
  #3 (permalink)  
Antiguo 31/03/2005, 12:29
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 3 meses
Puntos: 0
Buen ejemplo pero siguen las dudas.

Hey Gracias sanmi69 excelente ejemplo.

Pero tengo una duda como mostrar ese resultado en una Applet.
Osea al reemplazar System.out.printl(“ ” + form.format(numero) );
En g.drawString( ); y como enlazo form.format(numero);

La verdad que no se que hacer ya he ensayado con double.toString(form.format(numero)). Pero no funciona.
Espero alguien me explique.

La verdad es que soy muy novato, y los libros que he conseguido no tratan esto a fondo.
  #4 (permalink)  
Antiguo 01/04/2005, 02:15
 
Fecha de Ingreso: septiembre-2004
Mensajes: 191
Antigüedad: 19 años, 7 meses
Puntos: 1
No he tocado nunca applets pero el metodo drawString() requiere un String no???
Pues pasale directamente el
form.format(numero)
ya que el metodo format devuelve un String :)

Código PHP:
g.drawString(form.format(numero)) 

En mi ejemplo sobra el "" + del
"" + form.format(numero)
ya que es un string, no hay que convertirlo a String. Jejej las prisas es lo que tiene :)

saludos :)

Última edición por sanmi69; 01/04/2005 a las 02:16
  #5 (permalink)  
Antiguo 01/03/2010, 07:06
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Buen ejemplo pero siguen las dudas.

Hola espero que esto te ayude en algo vale?:
Aki les dejo el codigo completo.

import java.awt.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

public class FormateoNumeros extends java.applet.Applet
{

//Inicializacion de variables
double numero=4098.54433637;
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat form = (DecimalFormat)nf;

public void init()
{
form.applyPattern("#,###.00");

}

public void paint(Graphics g) {

g.drawString(""+form.format(numero),150,25);
//muestra 4.098,54
}
}
// Documento html para que en applet compile.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
</head>
<body bgcolor="000000">
<center>
<applet
code = "FormateoNumeros.class"
width = "500"
height = "300"
>
</applet>
</center>
</body>
</html>
  #6 (permalink)  
Antiguo 05/03/2010, 16:24
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: ¿Escoger un numero de decimales es posible?

Por que no usas un BigDecimal.

Código:
BigDecimal montoParcial = new BigDecimal("4098.54433637");
montoParcial.setScale(2, BigDecimal.ROUND_HALF_EVEN);
System.out.println(montoParcial.getValue());
Eso te mostraria 4098.54
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.