如何在这些点之间生成随机双精度数?

3 投票
2 回答
5372 浏览
提问于 2025-04-16 06:16
37.807614 to 37.786996 

随机生成的双精度数必须和上面提到的数字有相同的精度(也就是数字的位数)。

比如,37.792242 这个数字就符合要求,而 37.7823423425 这个数字就不符合。

2 个回答

0

我不太确定我是不是漏掉了什么,但为了避免四舍五入,而且你想要的就是那种精确度,直接用整数来计算然后再通过除法转换成浮点数不是最简单的吗?也就是说:

offset = float(random.randint(0,20618))

num = (offset + 37786996.0) / 1000000.0

5
round(random.uniform(num1, num2), 6)

有时候你会遇到一些数字,它们的结尾是...0001或者...9999之类的,这是因为IEEE 754这个标准在计算时会出现一些小误差。

撰写回答