Truncar doble en Java
-
Utilice
DecimalFormat
para truncar el doble en Java -
Utilice
BigDecimal
para truncar Double en Java - Utilice la biblioteca común de Apache para truncar decimal en Java
-
Utilice
java.lang.Math
para truncar decimal en Java
En este artículo, veremos cómo truncar o redondear un número an puntos decimales en Java. Java proporciona dos tipos primitivos para almacenar valores decimales que son dobles y flotantes. Se recomienda utilizar la clase BigDecimal
para valores precisos o redondeos.
Utilice DecimalFormat
para truncar el doble en Java
DecimalFormat
es una subclase de NumberFormat
que puede formatear números decimales usando el patrón de formato proporcionado. Aquí, en el código siguiente, creamos un objeto de DecimalFormat
pasando un patrón de formato adecuado. Podemos llamar al método format()
en el objeto decimatFormat
y pasar nuestra variable doble d
como parámetro.
El método format()
devuelve una cadena truncada, como se muestra en la salida.
import java.text.DecimalFormat;
public class DecimalFormatting {
public static void main(String args[]) {
double d = 9.4568982982989;
String pattern = "#.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
String formattedDouble = decimalFormat.format(d);
System.out.println("Formatted double d = " + formattedDouble);
}
}
Producción :
Formatted double d = 9.457
Utilice BigDecimal
para truncar Double en Java
En Java, BigDecimal
son números decimales con signo de precisión arbitraria e inmutables. Proporciona control sobre la escala y la precisión. Creamos un objeto BigDecimal
pasando el doble convertido como una cadena, evitando problemas con la representación de valores aproximados.
Luego llamamos al método setScale(int newScale, RoundingMode roundingMode)
en este objeto BigDecimal
bd
, que toma dos argumentos: la escala de BigDecimal que se devolverá y el otro es el modo de redondeo que se aplicará. El modo RoundingMode.FLOOR
se redondea hacia el infinito negativo.
public class DecimalFormatting {
public static void main(String args[]) {
double d = 9.4568982982989;
BigDecimal bd = new BigDecimal(String.valueOf(d));
BigDecimal rounded = bd.setScale(2, RoundingMode.FLOOR);
System.out.println("BigDecimal rounded off : " + rounded);
}
}
Producción :
BigDecimal rounded off : 9.45
Utilice la biblioteca común de Apache para truncar decimal en Java
Podemos lograr lo mismo con esta biblioteca cuya dependencia de maven se indica a continuación.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.5</version>
</dependency>
Podemos usar el método Precision.round()
de esta biblioteca para formatear decimal. Este método toma dos argumentos, uno la variable decimal a formatear y escalar. Necesitamos 4 dígitos después del punto decimal; de ahí que esa sea la escala que necesitamos. La salida muestra que los dígitos del decimal están truncados.
import org.apache.commons.math3.util.Precision;
public class DecimalFormatting {
public static void main(String args[]) {
double d = 9.4568982982989;
double doubleP = Precision.round(d, 4);
System.out.println("Precision rounded off : " + doubleP);
}
}
Producción :
Precision rounded off : 9.4569
Utilice java.lang.Math
para truncar decimal en Java
Esta es otra forma de redondear números decimales en Java. El método Math.pow()
controla n
número de decimales multiplicando y dividiendo por 10n. Creamos una scale
de doble variable utilizando este método que toma dos argumentos, base 10 y potencia 3.
Math.round()
en Java se usa para redondear un número a su entero más cercano. Esto se hace agregando 1/2 al número, hablando del piso del resultado y convirtiendo el resultado en un tipo de datos entero. Este método no se recomienda ya que a veces trunca el valor de forma incorrecta.
public class DecimalFormatting {
public static void main(String args[]) {
double d = 9.4568982982989;
double scale = Math.pow(10, 3);
double doubleM1 = Math.round(d * scale) / scale;
System.out.println("Math1 Rounded off: " + doubleM1);
}
}
Producción :
Math Rounded off: 9.45
Math1 Rounded off: 9.457
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn