你如何在这些点之间产生随机双倍?

时间:2010-10-29 09:24:59

标签: python types double int

37.807614 to 37.786996 

随机生成的double必须具有与上述相同的精度(位数)。

例如,37.792242会很好,而37.7823423425会很糟糕。

2 个答案:

答案 0 :(得分:4)

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

由于IEEE 754不准确,您偶尔会得到以...0001...9999左右结尾的数字。

答案 1 :(得分:0)

不确定我是否遗漏了某些东西,但是为了避免舍入,并且因为你想要那么精确,是不是最容易在整数中工作然后通过除法转换为浮点数?即。

offset = float(random.randint(0,20618)) num =(偏移量+ 37786996.0)/ 1000000.0