//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 sentenciasimport static paquetedelproyecto.JavaAdal_Redondeo
.redondeo_main
;public class SuPublicClassPrincipal { public static void main(String[] args) { //Llama al método redondeo_main
(new String[0]); }}*/