首页 > 解决方案 > 如何生成一个随机数到2dp

问题描述

我正在尝试研究一个随机数生成器,它产生一个随机数,无论是否需要,它都是 2dp。例如。2.10 是 2.10 不是 2.1,3 = 3.00

import random

temp_var_4_int = random.randint(2,5) + round(random.random(),2)

print (temp_var_4_int)

它应该随机化一个 2 到 5 之间的数字,然后添加一个小数点,四舍五入到小数点后 2 位,但我不断得到答案,例如:

1.2700000000000002 而不是 1.27

我不知道为什么它会向我抛出这个异常。

标签: pythondecimalrounding

解决方案


假设你想要你的数字,[0, 10]你可以这样做:

from random import uniform

r = round(uniform(0, 10), 2)
print(f"{r:3.2f}")

如果r = 2.1格式字符串将其表示为"2.10";但出于所有数学目的,尾随零无效。


推荐阅读