Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

106
Vistas
¿Cómo dividir BigInt por decimal en Javascript?

Tengo este código a continuación:

 let n = 100n; let x = 0.1; console.log(n/x); // Throws error

Error:

 TypeError: Cannot mix BigInt and other types, use explicit conversions

¿Cómo divido un BigInt por un valor decimal en JavaScipt?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En general...

... number de mezcla y BigInt está buscando problemas, por lo que ningún operador matemático le permitirá hacerlo y se requiere una conversión explícita.

(Nota: el Decimal está en el horizonte, que se aplicará aquí cuando madure).

Si quieres un resultado number ...

...convertir el BigInt a un number antes de hacer el cálculo; tenga en cuenta que la conversión puede tener pérdidas para números muy grandes (este es el punto de BigInt ), específicamente números por encima de Number.MAX_SAFE_INTEGER o por debajo Number.MIN_SAFE_INTEGER :

 let n = 100n; let x = 0.1; let result = Number(n) / x; console.log(result);

Si quieres un resultado BigInt ...

...es más complicado, porque tienes que decidir qué hacer con un resultado fraccionario. (Tu ejemplo no tendrá un resultado fraccionario, pero el caso general sí). Podrías pasar por number , pero de nuevo es una operación potencialmente con pérdidas:

 let n = 100n; let x = 0.1; let result = BigInt(Number(n) / x); // Throws if the result is fractional // let result = BigInt(Math.round(Number(n) / x)); // Rounds instead of throwing console.log(result.toString());

Si puede refactorizar la operación para que pueda expresarla en números enteros, eso lo hace mucho más fácil, porque entonces puede convertir x en BigInt . Por ejemplo, en su caso específico , / 0.1 es lo mismo que * (1 / 0.1) que es * 10 :

 let n = 100n; let x = 10n; let result = n * x; console.log(result.toString());

... pero eso es sólo ese caso específico.

Probablemente descubra que necesita manejarlo caso por caso, tratando de evitar realizar la operación. Cuando no puede, y el divisor es fraccionario, un number de ida y vuelta puede ser inevitable.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente convierta el bigint en número. Funcionará.

 let n = 100n; let x = 0.1; console.log(Number(n)/x);

Devolverá el resultado 1000

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda