Search code examples
javascriptrandomecmascript-2016

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


I am trying to generate a 20 digit random number:

let code = Math.floor(10000000000000000000n + Math.random() * 90000000000000000000n)

I have tried putting the numbers in BigInt() as well as adding a n after but still this error comes.

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

Solution

  • // An operation with a fractional result will be truncated when used with a BigInt.
    
    const rounded = 5n / 2n
    // ↪ 2n, not 2.5n
    
    // BigInt value can only operator with same type
    
    // random BigInt
    BigInt(Math.floor(Math.random() * 10))
    
    // generate a 20 digit random number
    BigInt(Math.floor(Math.random() * 100000000000000000000))
    

    you can check this