
Dentro del grupo de ejemplos básicos y siendo otro que nos le pide mucha gente que empieza con la programación en Java, hoy vamos a explicar como hacer un programa que nos ayude a dividir dos números. (Discúlpenme los expertos).
Lo primero será definir las variables. En el artículo sobre Sumar dos números con Java veíamos que las variables eran de tipo int. Pero en el caso de la división hay que tener cuidado, ya que el resultado de una división puede dar lugar a un número con decimales. Por ejemplo:
9/2 = 4.5
Es por ello que vamos a utilizar tipos float para los números:
float numero1 = 0;
float numero2 = 0;
float resultado;
Una vez definidas las variables pasaremos a solicitar los números al usuario apoyándonos en un objeto Scanner. Instanciamos el Scanner, con la entrada del sistema (System.in) como parámetro:
Scanner reader = new Scanner(System.in);
Ahora pasamos a leer los números mediante el método .nextFloat. El cual leerá de la consola el dato y lo almacenará en nuestras variables:
System.out.println("Introduce el primer número:");
numero1 = reader.nextFloat();
System.out.println("Introduce el segundo número:");
numero2 = reader.nextFloat();
Ya solo nos quedará ejecutar la división y mostrarla en la pantalla.
resultado = numero1/numero2;
System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);
Si están aprendiendo Java, es un buen ejemplo para empezar. Codificarlo, compilarlo y probarlo. A ver que tal.
José Manuel Henao Castañeda
Muy bueno el contenido brindado, me ayudo mucho para mis proyectos, ¡muchas gracias Victor!
Keylin
Tengo una pregunta eetaba intententando hacer un programa pero no puedo hacerlo me podrian ayudarme?👏👏
Realizar un programa que pida dos numeros enteros(dividiendo divisor) y que calcule su division escribiendo si la division es exacta ono. Se debera mostrar el cociente y el residuo de dicha division.
Manuel
Hola tengo un problema, se trata de suma sucesivas, el problema esta en la variable «mudi»: la operación me da 0 y no hay cambio al resultado final.
package ejercicios;
import java.util.Scanner;
public class Ejercicios {
public static void main(String[] args) {
Scanner numer=new Scanner(System.in);
System.out.println(«Realizar S=1/2+3/4+5/6+7/8+….+((2*n-1)/(2*n))»);
int n;
double cont=-1, cont2=0 , suma=0, divi, mudi, result;
System.out.print(«Ingrese un número: «);
n=numer.nextInt();
while(cont<7 && cont2<8)
{
cont=cont+2;
cont2=cont2+2;
divi=cont/cont2;
suma=suma+divi;
}
mudi = (2*(n-1))/(2*n);
System.out.println(mudi);
result=suma+mudi;
System.out.println("El resultado de la operación es: "+result);
}
}
Omar Vilchez
Si no me equivoco, cuando estableces que «mudi = (2*(n-1))/(2*n);» estás diciéndole a la java que el resultado de un cálculo con valores integer se guarde en mundo, es decir que en el cálculo el resultado se trata como un (int), y luego se guarda como un (double), por lo que al calcular primero no se pueden guardar decimales (ya que son integer).
Una posible solución sería transformar la variable «int n» en un Double, guardando una segunda variable que sustituya a n:
{
(…)
int n;
double cont=-1, cont2=0 , suma=0, divi, mudi, result;
double n_2; //variable que actuará como n
System.out.print(«Ingrese un número: «);
n=numer.nextInt();
n_2 = n; //se inicializa el N decimal
(…)
mudi = (2 * (n_2 – 1)) / (n_2 2 * n);
System.out.println(mudi);
}
Ahora, como el cálculo de «mudi» (Double) de realiza desde la variable decimal «n_2» (Double), entonces el cálculo puede albergar decimales, que luego guarda en una variable decimal «mudi».
Espero que te sea de ayuda ;)
Marco Antonio Herbas Patana
Una duda Victor como haria que pueda dividir 2 numeros, mostrar el resultado y el residuo pero sin utilizar los signos % y /. Ese ejercicio me dio, anunciado:
«Introducir dos números enteros positivos, luego asignar a una variable llamada
RESULTADO el resultado de la división entera del mayor sobre el menor, y en la
variable RESIDUO colocar el residuo de la división anteriormente mencionada.
Luego desplegar RESULTADO y RESIDUO. No se debe usar los operadores % y /.»
Cesar
package com.tutorialspoint;
import java.math.*;
import java.lang.*;
public class BigDecimalDemo {
public static void main(String[] args) {
// create 3 BigDecimal objects
BigDecimal bg1, bg2, bg3;
bg1 = new BigDecimal(«16»);
bg2 = new BigDecimal(«3»);
// divide bg1 with bg2 with 3 scale
bg3 = bg1.divide(bg2, 3, RoundingMode.CEILING);
String str = «Division result is » +bg3;
// print bg3 value
System.out.println( str );
}
}
Facundo
Hola, hay alguna forma para que las variables de tipo entero te devuelvan un numero en decimal?
este seria el ejercicio que debo hacer, pero no se como hacer para que me retorne un numero double.
Pedir 2 números enteros al usuario y mostrar el número (double) que se
encuentra en a igual distancia de ambos. (Ejemplo, si se ingresan 10 y 20
debe mostrar 15). Crear para ello el método igualDistancia.
Víctor Cuervo
Puedes hacer un cast de una variable.
Saludos.
Aby
quiero dividir un numero menor entre uno mayor, como por ejemplo 20/100, ya lo intente con el método que explicaste pero no me da el resultado deseado
Víctor Cuervo
¿Qué error te da? Debería de funcionar. Puedes poner tu código aquí o en el foro de Java http://dudasprogramacion.com/java
Saludos.
adan
public class divide {
public static void main(String args ){
int numeroUno =55;
int numeroDos=5;
int resultado=0;
resultado=numeroUno/numeroDos;
System.out.println(«La división es » + numeroUno + » / » + numeroDos + » = » + resultado);
//System.out.println(«este es el resultado:»+resultado);
}
}
el valor es : 7
Víctor Cuervo
Buenas,
Al utilizar números enteros te saldrá redondeado y por lo tanto 5/55 saldrá 0. Lo que tienes que hacer es utilizar decimales. Cambia los tipos de datos a float y solucionado.
Saludos.
yo
En serio?
esto es para paletos
yo crei que ibas a explicar los distintos metodos de divisiones :
a/b
a\b
a%b
ETC
Víctor Cuervo
Bueno,
Es una forma de empezar… hay otros artículos en la página que explica el resto de divisiones. Piensa que hay gente que está empezando y necesita información muy básica.
Saludos.
Luis Duarte
Buenas Victor, tengo una tarea de hacer una funcion que retorne la suma de los numeros internos de una funcion sin utilizar cadenas, como la puedo hacer?
Víctor Cuervo
Luis, mira a ver si lo que explicamos en el ejemplo de Sumar dos números en Java te es de ayuda. http://lineadecodigo.com/java/sumar-dos-numeros-con-java/
Realmente lo que tienes es que hacer sería algo como:
Espero que te vaya orientando y no dudes el exponer cualquier otra duda.
Saludos.
Fabian
y con el resultado en fracción y simplificado, como sería??
Víctor Cuervo
¿Qué quieres decir con fracción?
Astrid
Muchas, muchas gracias Carlos, llevaba semanas devanandome los sesos, recorrì toda la web y nada me funcionaba,tenia un problema igual que el de Sandra Isabel pero gracias a ti ya lo solucione, de nuevo mil y mil gracias. :)
Carlos
SOlo debes de hacer esto, claro esta que el ejemplo no esta muy detallado
double x = 1.0;
double y = 2.0;
double z = x / y;//0.5
Andres Quintana
Pongan En Codigo Completo porfa :D»
Víctor Cuervo
Andres, lo tienes disponible en https://github.com/victorcuervo/lineadecodigo_java/blob/master/src/com/lineadecodigo/java/basico/DividirNumeros.java
Además en https://github.com/victorcuervo/lineadecodigo_java/ puedes encontrar todos los ejemplos de los artículos del lenguaje Java que hemos escrito.
Espero que sea de tu ayuda.
Saludos.
Luis
Por que tus variables deben de ser flotantes las que son 1 y 2
Sandra Isabel Villafuerte Sanchez
hola
tengo una duda
¿por que si le pongo 1 / 2 me sale 0.0 y no 0.5?
Gracias
Saludos
Víctor Cuervo
Sandra, ten cuidado, las variables tienen que ser de tipo decimal ya sean float o double. Si utilizas variables de tipo entero (int, long, short) siempre te lo redondeará a un entero. Es por eso que 1/2 te sale 0.