就像这个问题的提问者一样,我想知道为什么Math.ceil(Math.random() * 10)不优先于Math.floor(Math.random() * 10) + 1,并发现这是因为 Math.random 有一个很小(但相关)的机会准确返回 0。但有多小?
进一步的研究告诉我,这个随机数精确到小数点后 16 位......好吧,有点。这就是我很好奇的“那种”。
我知道浮点数与小数的工作方式不同。虽然我在细节上挣扎。如果这个数字是一个严格的十进制值,我相信台球的可能性是十分之一(或十千万亿,在美国系统中) - 1:10 16。
这是正确的,还是我搞砸了,或者浮点数有什么不同?