miércoles, 5 de diciembre de 2018

Como redondear redondeo de un numero en java.- Código


//Inicia JavaAdal_Redondeo.java
package paquetedelproyecto;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.Scanner;

/**
 * @author Adalberto Monar
 */

public class JavaAdal_Redondeo {
 
    public static double redondear_i(double p_value_i, int p_places_i) {
     
        if (p_places_i < 0) throw new IllegalArgumentException();
     
        BigDecimal bd_i = new BigDecimal(p_value_i);
        String[] parts_i = bd_i.toString().split("\\.");
        BigDecimal pe_i = new BigDecimal(parts_i[0]);
        BigDecimal pd_i;
        pd_i = bd_i.subtract(pe_i);
        int ceros_i = (int) Math.pow(10,p_places_i+5);
        BigDecimal BD_ceros_i = new BigDecimal(ceros_i);
        pd_i = pd_i.multiply(BD_ceros_i);
        //System.out.println(pd_i);
        pd_i = pd_i.setScale(0, RoundingMode.HALF_UP);
        int pote10_i;
        pote10_i = (int)Math.pow(10,5);
        BigDecimal diez_i = new BigDecimal(pote10_i);
        pd_i = pd_i.divide(diez_i);
        //System.out.println(pd_i);
        pd_i = pd_i.setScale(0, RoundingMode.HALF_UP);
        BD_ceros_i = BD_ceros_i.divide(diez_i);
        pd_i = pd_i.divide(BD_ceros_i);
        BigDecimal new_bd_i;
        new_bd_i = pe_i.add(pd_i);
        return new_bd_i.doubleValue();

    } 
 
    public static void redondeo_main(String[] args) {
        // TODO code application logic here

        Double ingvalor = 0.00;
        Double redondeo = 0.00;
             
        Scanner leer = new Scanner (System.in);
        leer.useLocale(Locale.US);
        System.out.println("Redondeo");
        System.out.print("Ingrese Valor Double: ");
        while (!leer.hasNextDouble()) {
            System.out.println("Un número Double con . !Por favor!");
            System.out.print("Ingrese Valor Double: ");
            leer.nextLine();
        }
        ingvalor = leer.nextDouble();
     
        System.out.println("");
     
        DecimalFormatSymbols simbolos = DecimalFormatSymbols.getInstance(Locale.US);
        DecimalFormat dF1d = new DecimalFormat("0.0",simbolos);
        redondeo = redondear_i(ingvalor,1);
        System.out.println("A 1 decimal : " + dF1d.format(redondeo));
        DecimalFormat dF2d = new DecimalFormat("0.00",simbolos);
        redondeo = redondear_i(ingvalor,2);
        System.out.println("A 2 decimales : " + dF2d.format(redondeo));
        DecimalFormat dF3d = new DecimalFormat("0.000",simbolos);
        redondeo = redondear_i(ingvalor,3);
        System.out.println("A 3 decimales : " + dF3d.format(redondeo));

    }

}
//Finaliza JavaAdal_Redondeo.java


/* Archivo Fuente java con el método main(String[] args)

En SuPublicClassPrincipal.java incluir dentro de sus sentencias

import static paquetedelproyecto.JavaAdal_Redondeo.redondeo_main;

public class SuPublicClassPrincipal {

     public static void main(String[] args) {

           //Llama al método
           redondeo_main(new String[0]);

     }

}
*/