Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

676
Views
Modo de redondeo en el método Number () en Javascript

Estoy reescribiendo el código JavaScript a Java. Encontré esta línea en código JavaScript.

 Number("<amount-values>").toFixed(0)

Como el valor está relacionado con el dinero, estoy usando BigDecimal en Java para hacer cálculos precisos y no perder precisiones.

¿Podría ayudarme con el modo de redondeo correcto en BigDecimal que es equivalente al modo de redondeo del método Number() en JavaScript, donde ambos redondeos producirán el mismo resultado?

 BigDecimal.setScale(0)

Ambas escalas están produciendo resultados diferentes cuando hay decimales. Creé una tabla muy pequeña y veo que el método Number() se está alineando con HALF_DOWN, HALF_EVEN, HALF_UP. Pero este es un ejemplo muy pequeño y podría haber muchos otros casos.

ingrese la descripción de la imagen aquí

Sí, no quiero nada después del punto decimal en mi salida.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para que quede claro, Number.prototype.toFixed() no es equivalente a Math.Round

 (5.5).toFixed(0) == 6 (5.4).toFixed(0) == 5 (-5.5).toFixed(0) === **-6** Math.round(5.5) == 6 Math.round(5.4) == 5 Math.round(-5.5) == **-5**

Debe saber esto y decidir qué comportamiento desea, si hay valores negativos involucrados.

Si todos sus valores son positivos, la lógica es bastante simple: si el decimal es mayor o igual a .5, entonces redondea hacia arriba (Math.ceil), de lo contrario, redondea hacia abajo (Math.floor). Creo que "Math.ceil" y "Math.floor" son los nombres de los métodos tanto en JS como en Java.

Dado que tiene decimales en su ejemplo, debe tener claro si realmente desea el comportamiento mostrado por (-5.5).toFixed(0) vs Math.round(-5.5).

Parece que toFixed efectivamente lleva las cosas a ambos lados de 0 hacia 0. Math.round, por otro lado, parece redondear los valores hacia abajo, a valores más bajos (ya sea menos positivos o más negativos).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!