Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

105
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda