Pythonで乱数を作成する方法を見つけたばかりですが、それらを印刷すると、すべて10進数で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)
のように、変数に小数点の量を選択させる方法がある場合、私はそれを試してみましたが、もちろん失敗しました。
本当にわからなかった。うまくいけば、あなたが助けることができます。ありがとう。
_random.uniform
_から取得した数値を取得して特定の桁数に切り捨てる場合は、 round()
function を使用できます。
特定の精度に丸めることができます。例えば:
_import random
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: "))
rounded_number = round(random.uniform(greaterThan, lessThan), digits)
print(rounded_number)
_
.format()
を使用して浮動小数点精度を処理することもできます。
print float("{0:.2f}".format(random.uniform(greaterThan, lessThan)))
どこ 2
は、必要な小数点以下の桁数に置き換えることができます。
あなたが話していることは、コンピュータがいわゆる 浮動小数点演算 を実行する方法のかなり基本的なものであるため、「それを修正する」とはどういう意味かわかりません。
しかし、そうは言っても、あなたが探しているのはかなり確信しています 10進モジュール :
import decimal
頑張ってください!
編集:
あなたの投稿をもう一度見てみると、これは奇妙に感じます。これは宿題ですか?その値で何もしていないのに、なぜdigits
変数があるのですか?確かに、あなたはそれを(何度も何度も)チェックしますが、あなたは毎回同じことをしています。
digits
の値ごとに実際に異なることをしている場合は、if-Elif-elseを使用する必要があります。
if digits == 15:
do_stuff()
...
Elif digits == 14:
do_other_stuff()
...
Elif digits == 13:
do_even_moar_different()
...
...
else:
and_now_for_something_completely_different()
しかし、それは醜いです、そしてPythonはきれいであるはずです( import this
)。
if digits > some_value:
do_stuff()
...
Elif digits <= some_other_value:
do_something_else()
...
浮動小数点演算 リンクを読むことをお勧めします。これは、少なくとも少しは理解することが非常に重要だからです。