English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Uso detallado de RequireJs

java.math.BigDecimal

BigDecimal tiene un total de4Métodos suficientes, permítanme mostrarles dos usos entre ellos:

Primero: BigDecimal(double val)

Traduce un double a un BigDecimal.

Segunda opción: BigDecimal(String val)

Traduce la representación de String de un BigDecimal a un BigDecimal.

Para usar BigDecimal, se debe utilizar String para crear. Para realizar una operación de suma, primero se deben convertir dos números de punto flotante a String, luego crear BigDecimal, llamar al método add en uno de ellos, pasando el otro como parámetro, y luego convertir el resultado de la operación (BigDecimal) nuevamente a un número de punto flotante.

public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v}}1,double v2)
public static double div(double v}}1,double v2,int scale)
public static double round(double v, int scale)

Clase de herramienta: Arith

/**
 * Dado que los tipos simples de Java no pueden realizar operaciones de punto flotante con precisión, esta clase de herramienta proporciona operaciones de punto flotante precisas, incluyendo suma, resta, multiplicación, división y redondeo.
 */
public class Arith { // Precisión predeterminada de la operación de división
  private static final int DEF_DIV_SCALE = 10; // Esta clase no puede ser instanciada
  private Arith() {
  }
  /**
   * Proporciona operaciones de adición precisas.
   * 
   * @param v1
   *      Dividendo
   * @param v2
   *      Sumando
   * @return Suma de dos parámetros
   */
  public static double add(double v1, double v2) {
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.add(b2).doubleValue();
  }
  /**
   * Proporciona operaciones de sustracción precisas.
   * 
   * @param v1
   *      Dividendo
   * @param v2
   *      Sustraendo
   * @return Diferencia de dos parámetros
   */
  public static double sub(double v1, double v2) {
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.subtract(b2).doubleValue();
  }
  /**
   * Proporciona operaciones de multiplicación precisas.
   * 
   * @param v1
   *      Dividendo
   * @param v2
   *      Multiplicando
   * @return Producto de dos parámetros
   */
  public static double mul(double v1, double v2) {
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.multiply(b2).doubleValue();
  }
  /**
   * Proporciona operaciones de división (relativamente) precisas, cuando ocurre una división que no puede ser exacta, la precisión se especifica hasta ciertos decimales.10décimas, y los números posteriores se redondean.
   * 
   * @param v1
   *      Dividendo
   * @param v2
   *      Divisor
   * @return División de dos parámetros
   */
  public static double div(double v}}1, double v2) {
    return div(v1, v2, DEF_DIV_SCALE);
  }
  /**
   * Proporciona operaciones de división (relativamente) precisas. Cuando ocurre una división que no puede ser exacta, la precisión se especifica mediante el parámetro scale, y los números posteriores se redondean.
   * 
   * @param v1
   *      Dividendo
   * @param v2
   *      Divisor
   * @param scale
   *      Representa necesitar precisión hasta ciertos decimales.
   * @return División de dos parámetros
   */
  public static double div(double v}}1, double v2, int scale) {
    if (scale < 0) {
      throw new IllegalArgumentException(
          "La escala debe ser un entero positivo o cero");
    }
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
  }
  /**
   * Proporciona un tratamiento de redondeo de decimales precisos.
   * 
   * @param v Número que necesita ser redondeado
   * @param scale位数小数点后保留几位
   * @return Resultado redondeado
   */
  public static double round(double v, int scale) {
    if (scale < 0) {
      throw new IllegalArgumentException(
          "La escala debe ser un entero positivo o cero");
    }
    BigDecimal b = new BigDecimal(Double.toString(v));
    BigDecimal one = new BigDecimal("1");
    return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
  }
};

Esto es todo el contenido de este artículo, espero que sea útil para su aprendizaje y que todos apoyen el tutorial de grito.

Declaración: el contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido se ha contribuido y subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado la edición humana y no asume la responsabilidad de las responsabilidades legales relacionadas. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @ para denunciar, y proporcione la evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.)

Tutorial de Elasticsearch