【发布时间】:2015-07-23 18:41:53
【问题描述】:
我刚刚发现了如何在 Python 中生成随机数,但是如果我将它们打印出来,它们都有 15 个十进制数字。我该如何解决? 这是我的代码:
import random
import os
greaterThan = float(input("Your number will be greater than: "))
lessThan = float(input("Your number will be less than: "))
digits = int(input("Your number will that many decimal digits: "))
os.system('cls')
if digits == 15:
print(random.uniform(greaterThan, lessThan))
if digits == 14:
print(random.uniform(greaterThan, lessThan))
if digits == 13:
print(random.uniform(greaterThan, lessThan))
if digits == 12:
print(random.uniform(greaterThan, lessThan))
if digits == 11:
print(random.uniform(greaterThan, lessThan))
if digits == 10:
print(random.uniform(greaterThan, lessThan))
*(这只是持续到 0)
我知道你可以像print("%.2" % someVariable) 那样做,但是 Python 用这种方法创建的随机数不会保存在任何变量中。至少我是这么认为的。
我也想知道是否有办法让变量选择小数点的数量,比如print("%." + digits % anotherVariable),但我试过了,当然失败了。
我真的不知道。希望您能提供帮助。 谢谢。
【问题讨论】:
-
您是否尝试过将数字除以 100(例如,得到 2 位小数)?如果你想要 3 位小数,你应该除以 1000,依此类推。
number/1000 -
您的
if块都具有完全相同的内容。为什么你希望他们表现不同? -
另外,它不是
print("%.2 % someVariable)。这是print("%.2 % someExpression)。您可以使用random.uniform(greaterThan, LessThan)作为该表达式。 -
谢谢。我没想到他们的行为会有所不同。我只是想加上“差异”,但我不知道怎么做,所以我问了这个问题。
-
@SALZKARTOFFEEEL 如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道您的问题已得到您满意的解决,并为帮助您的人提供帮助。 See here 以获得完整的解释。
标签: python random decimal-point