2016-12-23 4 views
-4

整数と浮動小数点のリストを持っていて、それを印刷すると小数点なしの整数を出力する方法があります浮動小屋のためにそれを保つが、場所?Python 3.5.2では、浮動小数点数を維持しながら整数の小数点以下桁数を削除することは可能ですか

異なるカードの値が異なるデッキのカードに基づいてゲームを作成しました。各カードの値は、スーツに基づいて2,1.5,1または0.5のいずれかで乗算されます。これはランダムに行われます。このプロセスを10回繰り返す。

Scores = [2, 4, 6, 8, 10, 12, 15] 
Suits = [2, 1.5, 1, 0.5] 
TScore = 0 
for each in range(10): 
Score = random.choice(Scores) 
Suit = random.choice(Suits) 
TScore = Score * Suit 
print("Your score is {0}".format(TScore)) 

は、コンソールがこのような何かを印刷することができる:

あなたのスコアは、あなたのスコアは、あなたのスコアは18.0
で22.5
で12
ある

のコードは次のようになりますあなたのスコアは15
あなたのスコアは30
ですあなたのスコアはsの6.0
あなたのスコアは6.0
あなたのスコアは6.0
あなたのスコアは12
あなたのスコアは、整数、小数点が続いていないことを確認する方法がある6

されているのですか?上記jonrsharpeさんのコメントを参照するhttps://www.tutorialspoint.com/python/python_basic_operators.htm

+1

どのように印刷していますか?あなたは彼らが両方のフロートではないと確信していますか? float.is_integerでテストすることもできます。例えば、 http://stackoverflow.com/q/21583758/3001761 – jonrsharpe

+2

他の人が手助けするための詳細と十分なデータを提供してください。 – ade1e

+0

これらは両方とも浮動小数点です。 –

答えて

1
for score in [4.0, 22.5]: 
    ''' 
    Modulo(%) pulls the remainder, if the number is a whole number 
    dividing by 1 should always return 0. 
    ''' 
    if score % 1 == 0: 
     score = int(score) 
    print(score) 

。 float.methodsの詳細については

if score.is_integer(): # a float.method returns true if the number is whole. 
     score = int(score) 
    print(score) 

https://docs.python.org/3/library/stdtypes.html#additional-methods-on-float

+0

if score.is_integer:#float.methodは、数字が全体であれば真を返します。 score = int(score) print(score) どちらの場合もスコアが4.0または4.8の場合は4を返します –

+0

私は謝罪しました。指摘していただきありがとうございます。 –

0

私はそれはあなたのケースで働くことを願っています。このため

def removeDecimal(num): 
     num1 = list(str(num)) 
     if(num1[-1]=='0'):  
       return int(num) 
     else: 
       return num 

def main(): 
     score1 = 4.0 
     score2 = 22.5 
     print(removeDecimal(score1))  
     print(removeDecimal(score2)) 
if __name__=="__main__": 
     main() 

出力は次のとおりです。

22.5

関連する問題