elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Decimales y Redondeo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Decimales y Redondeo  (Leído 6,444 veces)
alexmacan

Desconectado Desconectado

Mensajes: 101


Ver Perfil
Decimales y Redondeo
« en: 17 Diciembre 2009, 23:46 pm »

Buenas amigos tengo un pequeño problema, pero llevo un par de dias intentandolo sacar y no soy capaz :-(

La question la divido en dos partes la PRIMERA:

La que busco es un metodo que dado un Double de un Double con solo dos cifras decimales y que haya redondeado fijandose en la tercera

Ejemplos:

0.99587--->0.96
127.1--->127.1
0.8649--->0.86
1.0--->1.0

y la SEGUNDA parte:

dado el Double anterior pasarlo a String pero si le falta un cero en la parte decimal que lo ponga, creo que con ejemplos me explico mejor:

0.96--->0.96
127.1--->127.10
0.86--->0.86
1.0--->1.00

esto es todo, lo que yo he trabajado es el siguiente codigo, pero da fallos de programacion, del tipo, funciona bien cuando entran X.X o X.0 pero no va cuando entra un numero de formar X.XX creo que seria mejor empezar del principio antes que solucionar lo que tengo ya.

Codigo de la PRIMERA parte:

    public static Double Redondeo(Double d,int dec){
    Integer r=0;
        String s=d.toString();
        char[] a=s.toCharArray();
        //graba en r el indice del '.'
        for(int i=0;i>=a.length;i++){
           Character q= a;
           if(q.equals('.'))r=i;
        }
        //busca el tercer numero despues de la coma si es igual o mayor que 5 suma 0.1
        Character ex= a[r+3];
        if(new Integer(ex)>=5){
            d=d+0.01;
        }
        // corta todos los decimales menos los dos primeros
        d=LimpiaBarras.Truncar(d, 2);


        return d;
    }

Nota: dec es el numero de decimales que se quieren conservar, siempra va a ser 2;





Codigo de la SEGUNDA parte:

public static String decimalAStringCon00(Double des,int dec){

Double d=LimpiaBarras.Redondeo(des, dec);

         String enString = d.toString();
        Integer longitud = enString.length();
        Integer indexPunto = longitud-2;
        Boolean necesita00 = false;
        Character punto = enString.charAt(indexPunto);
            if(punto.equals('.')){
                necesita00=true;
            }
         if(necesita00){
             enString += "0";
         }
          System.out.println(enString);
       return enString;

    }

No tengo apenas idea de programacion pero soy constante, espero que seais comprensibles conmigo.

Un Saludo y gracias de antemano. :)


En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: Decimales y Redondeo
« Respuesta #1 en: 18 Diciembre 2009, 07:38 am »

pero veo un problema que si supongamos tienes 10.2 y le vas a agregar un 0 bien pero cuando returnas como double este le quita el 0 :-X eso no seria un problema

Saludos.


« Última modificación: 18 Diciembre 2009, 07:40 am por LEYER » En línea

alexmacan

Desconectado Desconectado

Mensajes: 101


Ver Perfil
Re: Decimales y Redondeo
« Respuesta #2 en: 18 Diciembre 2009, 20:10 pm »

Solucionado. Tengo que Googlear mas.

  public static double redondearAlexander( double numero, int decimales ) {
    return Math.round(numero*Math.pow(10,decimales))/Math.pow(10,decimales);
  }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Decimales en datagrid y exportar a pdf c# « 1 2 »
.NET (C#, VB.NET, ASP)
joalbela 10 8,498 Último mensaje 15 Marzo 2011, 19:59 pm
por [D4N93R]
Decimales en otras bases
Dudas Generales
Negr0 0 1,738 Último mensaje 2 Julio 2011, 08:35 am
por Negr0
[Ayuda] Redondeo en C++
Programación C/C++
Zodiak98 7 3,736 Último mensaje 4 Agosto 2014, 23:18 pm
por leosansan
Evitar redondeo de decimales en textbox
Programación Visual Basic
rapbyone 7 8,007 Último mensaje 12 Febrero 2015, 17:32 pm
por okik
Sctipt redondeo en caja
Programación C/C++
Mechanix318 2 1,805 Último mensaje 27 Noviembre 2017, 17:57 pm
por Mechanix318
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines