2016-09-01 6 views
1

Ich mache ein Programm, das viele Zahlen teilt, und ich möchte überprüfen, ob die Zahl Dezimalzahlen erhält oder nicht. Ich möchte auch, dass diese Dezimalzahlen gedruckt werden. Beispiel:Python Nach Dezimalzahlen suchen

EDIT: Ok, also seit "überprüfen, welche Dezimalstelle ist nachher" brachte einige Verwirrung, lassen Sie mich erklären. Ich möchte prüfen können, ob eine Zahl Dezimalstellen hat. Zum Beispiel, 7/3 (foo) gibt mir Dezimalzahlen, aber ich will, dass Python mir das sagt, ohne dass ich die Mathematik machen muss. vergiss den "welcher Dezimal" -Teil

+0

was ist Ihre spezifische Frage? –

Antwort

2

wenn Sie, ob die Einteilung Dezimalstellen nur testen wollen, hat, überprüfen Sie die Modulo:

foo = a % b 
if foo != 0: 
    # Then foo contains decimals 
    pass 

if foo == 0: 
    # Then foo does NOT contain decimals 
    pass 

jedoch (da ist Ihre Frage ein wenig unklar), wenn Sie die ganze Zahl und Dezimalstellen teilen möchten, dann Verwenden Sie math.modf() Funktion:

import math 
x = 1234.5678 
math.modf(x) # (0.5678000000000338, 1234.0) 
+1

'wenn foo == 0: #FOO enthält keine DEZIMALEN' ... außer dass a% b ist definitiv der beste Weg zu überprüfen ** wenn ** das Ergebnis einige Dezimalstellen hat ... und modf ist großartig zu überprüfen, ob eine beliebige Zahl einen Dezimalanteil hat –

+1

@JoranBeasley Hoppla, guten Fang, danke (ich habe es bearbeitet). –

0

Aufgrund der Formulierung Ihrer Frage gehe ich davon aus, dass Sie schauen, ob eine bestimmte Zahl hinter dem Komma steht? Wenn das der Fall ist ...

Was Sie tun können, ist foo geteilt . als Trennzeichen verwenden und überprüfen, um zu sehen, ob die Zahl, in diesem Fall, dass Sie für 3 suchen, nachdem die . in Abschnitt

foo = 7/float(3) 
foo = str(foo) 
after_decimal = foo.split('.')[1] 
if '3' in after_decimal: 
    print 'Yes!' 
else: 
    print 'No!' 

In this case the output is: Yes! 
+0

Es sagt mir, dass 'float' Objekt hat kein Attribut 'Split' –

+1

@AndreasSandberg Ich habe es aktualisiert. Versuchen Sie es erneut mit dem neuen Code :) – Harrison

+0

@Harrison Ihr Code ist überhaupt nicht Pythonic, 'math.modf()' Funktion ist viel besser für den Job. –

0

Ihre Frage ist etwas unklar. Mit diesem Code können Sie jedoch in die richtige Richtung gehen. Rufen Sie einfach Decimal_Checker an und geben Sie die gewünschten Nummern ein.

def Decimal_Checker(x,y): 
    if x %y != 0: 
     print("it has decimals") 
    else: 
     print("it does not have decimals") 

Decimal_Checker(3,2) 
+0

auch akzeptabel imho ... vor allem, da es nicht sehr klar ist, was das op eigentlich will? –