我正在尝试使用一个随机数生成器,该生成器将生成一个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
我不确定为什么会向我抛出这种异常。
答案 0 :(得分:0)
假设您希望输入[0, 10]
中的数字,您可以这样做:
from random import uniform
r = round(uniform(0, 10), 2)
print(f"{r:3.2f}")
如果r = 2.1
格式字符串将其表示为"2.10"
;但出于所有数学目的,尾随零均无效。
答案 1 :(得分:0)
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))
答案 2 :(得分:0)
尝试使用字符串格式:
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字符串可在Python 3.6+上运行
答案 3 :(得分:0)
您可以使用以下两位数字格式化浮点数:
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)
将返回
0.12000000000000001
和
'%.2f' % (0.1+.02)
将返回
'0.12'
请尝试并让我知道,这是同一问题的另一个示例