【发布时间】:2021-08-30 21:24:40
【问题描述】:
在 JavaScript 中将 Number.MAX_SAFE_INTEGER 乘以 Math.random() 时,我可能会丢失任何十进制数字(精度)吗?
我想我不会,但最好能有一个可信的解释来解释为什么????
已编辑,通俗地说,我们正在处理两个IEEE 754 双精度浮点数,一个是最大整数(用于双精度),另一个是小数小数点后有不少数字。如果(比如说)我先将它们转换为quadruple-precision format,然后相乘,然后再将乘积转换回双精度,结果会有所不同吗?
const max = Number.MAX_SAFE_INTEGER;
const random = Math.random();
console.log(`\
MAX_SAFE_INTEGER: ${max}, \
random: ${random}, \
product: ${max * random}`);
对于更详细的示例,我使用它来生成BigInt random numbers。
【问题讨论】:
标签: javascript math random numbers