I would expect the number that I pass to BigInt has already overflowed before the BigInt creation, yet the result is correct. What is the reason, and can I rely on this for other powers of 2 (my use case)?
Why BigInt(2 ** 100) does return a correct result in Chrome, Firefox, Safari
110 Views Asked by Patman At
1
There are 1 best solutions below
Related Questions in JAVASCRIPT
- Using Puppeteer to scrape a public API only when the data changes
- inline SVG text (js)
- An array of images and a for loop display the buttons. How to assign each button to open its own block by name?
- Storing the preferred font-size in localStorage
- Simple movie API request not showing up in the console log
- Authenticate Flask rest API
- Deploying sveltekit app with gunjs on vercel throws cannot find module './lib/text-encoding'
- How to request administrator rights?
- mp4 embedded videos within github pages website not loading
- Scrimba tutorial was working, suddenly stopped even trying the default
- In Datatables, start value resets to 0, when column sorting
- How do I link two models in mongoose?
- parameter values only being sent to certain columns in google sheet?
- Run main several times of wasm in browser
- Variable inside a Variable, not updating
Related Questions in BIGINT
- How to convert BigInt array representation to the Integer representation?
- String to BigInt in JavaScript
- Bigint: Failed to load bindings | tsconfig.json - cannot read file
- Why BigInt(2 ** 100) does return a correct result in Chrome, Firefox, Safari
- Access 365 convert text back to BigInt
- Vite app works in DEV but not after BUILD and PREVIEW: BigInt is not a function
- Convert BigInt to Number Sol -> Javascript
- Divide 2 Bigints (Find percentage change)
- JS is not converting Big Number to a string correctly
- SQL SELECT ERRO ARITHMETIC
- BigInt modulo float
- How to generate a random `bigint` number between two `bigint` numbers in TypeScript?
- How to store a uuid type into bigint effectively?
- Is there a method to print a n-bit (like 256-bit) integer in c without using an external library?
- Load Python Pandas data into SQL Server, conversion from variable or parameter type INT to target column type BIGINT is not supported
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
That is because the JavaScript
numbertype follows the IEEE 754 standard for floating point numbers. These numbers are stored like this:+1)100).0)... to represent a number like
sign * (1 + fractional part) * 2 ** exponent. In your case, that number is+1 * (1 + .0) * 2 ** 100.You can see that it can store powers of two exactly.
You can't completely depend on it, though. This format is fixed size and so can only represent a finite number of numbers. The largest power of two that can be represented is
2 ** 1023. Trying to doBigInt(2 ** 1024)will throw aRangeError, because floating point numbers that are too large to be represented in 64 bits are represented with a specialInfinityvalue.You are not going to get an inexact value, though, if that's the most important aspect for you.
Should you need to deal with larger values, I suggest storing the exponent as a number and then doing
2n ** BigInt(my_exponent)when you need the BigInt. (Or BigInt(2) ** BigInt(my_exponent)`).