2017-05-25 95 views
3

我想用兩個精度生成一個浮點數隨機數。 例如:2.54 如何更改python中的uniform(a,b)。 謝謝如何在python中用兩個精度生成一個浮點隨機數

+3

您將'fixed point'與'floating point'混淆,您無法生成精度爲2位小數的浮點數。 (儘管您可以將它們打印到2位小數)。如果您需要2位小數,請查看「decimal」模塊中的「Decimal」類型。 – AChampion

+0

你可以用一種冒險的方式生成3位數的隨機數併除以100 –

+0

我不完全確定你是否想要兩位小數或兩位數之間的randmon?也許你可以澄清一點 –

回答

7

您可以使用具有統一功能的舍入函數將浮點數限制爲兩位小數。

例子:

round(random.uniform(1.5, 1.9),2) 
Out[]: 1.62 

round(random.uniform(1.5, 1.9),3) 
Out[]: 1.885 
+1

這是一個很好的答案,很好! –

+0

謝謝!我應該怎麼做?如果我想在運行程序時生成固定的內容? – user3356423

+0

如果你想要固定的號碼,那麼只需申請round(any_number,2)。 random.uniform會每次產生不同的值。 –

1

如果要生成兩個數字之間的隨機數,以小數的具體數額,這裏是一個辦法:

import random 

greaterThan = float(1) 
lessThan = float(4) 
digits = int(2) 

rounded_number = round(random.uniform(greaterThan, lessThan), digits) 
在這種情況下

,你隨機數字將在1和4之間,用兩位數字

2

這可能是可能的解決方案,正如@Damian所要求的那樣

>>> from random import randint 
>>> randint(100, 999)/100.00 
7.32 
>>> randint(100, 999)/100.00 
4.69 
>>> randint(100, 999)/100.00 
5.36 
相關問題