Este artículo fue coescrito por Anne Schmidt . Anne Schmidt es instructora de Química en Wisconsin. Ha estado enseñando Química en escuelas secundarias por más de 20 años y le apasiona brindar contenido de química accesible y educativo. Cuenta con más de 9000 suscriptores en su canal de YouTube sobre química educativa. Se ha presentado en la American Association of Chemistry Teachers (AATC) y fue instructora adjunta de química general en el Northeast Wisconsin Technical College. Anne ha publicado en el Journal of Chemical Education como coautora, tiene un artículo en ChemEdX, además de haberse presentado dos veces y publicado con la AATC. Posee una licenciatura en química obtenida en la Universidad de Wisconsin, Oshkosh, así como una maestría en educación secundaria y enseñanza obtenida en la Universidad de Viterbo.
Este wikiHow te mostrará tres formas de hacer números decimales en Java. Si quieres dividir dos enteros (números no decimales) y obtener una respuesta no redondeada, convierte uno de los operandos al doble. Para dividir dos decimales (o un entero por un decimal, o viceversa), puedes utilizar una división doble simple para garantizar un resultado decimal. Al trabajar con números más grandes o números que deban ser extremadamente exactos, puedes utilizar la clase BigDecimal Java en lugar de la aritmética de punto flotante. [1] X Fuente de investigación
Pasos
-
Java, al igual que otros lenguajes de programación, emplea la división de entero de manera predeterminada. Si dividir dos números enteros da como resultado un resto, este se descarta, dejándote con un número entero como respuesta. Si necesitas dividir dos enteros y obtener un resultado decimal, puedes
duplicar
el numerador o denominador antes de realizar la operación. [2] X Fuente de investigación . En este ejemploduplicaremos
a para obtener un resultado decimal:int a = 55 ; int b = 25 ; double r = ( double ) a / b // La respuesta es 2,2.
Anuncio
-
Al dividir un decimal entre otro decimal, utilizarás una división doble. [3] X Fuente de investigación De manera similar, si uno de ambos operandos es un número entero (un número no decimal), el resultado seguirá siendo un decimal si se duplica el otro operando. Este es un ejemplo de dividir dos decimales utilizando una doble división:
double x = 10.5 ; double y = 2.5 ; x / y // La respuesta es 4,2
-
Si trabajas con monedas o necesitas el resultado decimal más preciso, utiliza la clase BigDecimal. La aritmética de punto flotante (que es lo que haces con la
duplicación
) es menos precisa, pues laduplicación
almacena números como representaciones binarias de fracciones y exponentes en lugar de representaciones exactas (números de punto fijo). [4] X Fuente de investigación Para asegurarte de trabajar con números de punto fijo, utilizaBigDecimal
. En este ejemplo, emplearemos BigDecimal para dividir dos números y obtener un resultado preciso:BigDecimal bdec = new BigDecimal ( "706" ); BigDecimal bdecRes = bdec . divide ( new BigDecimal ( "20" )); System . out . println ( "Divide: " + bdecRes ); // Divide con MathContext MathContext mc = new MathContext ( 2 , RoundingMode . FLOOR ); BigDecimal bdecMath = bdec . divide ( new BigDecimal ( "20" ), mc ); System . out . println ( "Divide with MathContext: " + bdecMath ); // El primer resultado será 45,25, y el segundo, 45.
- Al utilizar BigDecimal, necesitarás especificar el
RoundingMode
para el resultado, el cual puede serUP
(lejos de cero),DOWN
(hacia cero),CEILING
(hacia infinito positivo),FLOOR
(hacia infinito negativo),HALF_UP
(hacia el vecino más cercano o hacia arriba si ambos vecinos son iguales),HALF_DOWN
(hacia el vecino más cercano o hacia abajo si es igual),HALF_EVEN
(hacia el vecino más cercano o hacia el vecino par más cercano si es igual), oUNNECESSARY
(el resultado debe ser exacto). [5] X Fuente de investigación
Anuncio - Al utilizar BigDecimal, necesitarás especificar el
wikiHows relacionados
Referencias
- ↑ https://www.geeksforgeeks.org/bigdecimal-class-java/
- ↑ https://mathbits.com/MathBits/Java/DataBasics/Mathoperators.htm
- ↑ https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
- ↑ https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
- ↑ https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html
Acerca de este wikiHow
¿Te ayudó este artículo?
Artículos relacionados
¡Suscríbete al boletín gratuito de wikiHow!
Encontrarás instructivos útiles en tu bandeja de entrada cada semana.
¡Suscríbeme!