如何生成一个随机数到2dp

How to generate a random number to 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 之间的数字,然后向其添加一个四舍五入到小数点后两位的小数,但我不断得到如下答案:

1.2700000000000002 而不是 1.27

我不确定为什么它会向我抛出这个异常。

假设您想要 [0, 10] 中的号码,您可以这样做:

from random import uniform

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

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

import random
print("Printing random float number with two decimal places is ",
      round(random.random(), 2))
print("Random float number between 2.5 and 22.5 with two decimal places is ",
      round(random.uniform(2.5,22.5), 2))

尝试使用字符串格式:

from random import randint, random

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

print(temp_var_4_int)
print(f"{temp_var_4_int:.2f}")

这将输出如下内容:

2.1
2.10

请注意 f-strings 适用于 Python 3.6+

您可以使用两位数格式化浮点数,例如:

import random

temp_var_4_int = random.randint(2,5) + round(random.random(),2)
temp_var_4_int = '%.2f' % (temp_var_4_int)
print(temp_var_4_int)

据此Q&A

(0.1+.02)

将return

0.12000000000000001

'%.2f' % (0.1+.02)

将return

'0.12'

请尝试一下,让我知道,是同一问题的另一个例子