Seite 1 von 1

ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 20:22
von LP640
hallo,
weiß jemand, wie man bei python ganze zahlen erkennen kann?
etwa so (nur als beispiel):

Code: Alles auswählen

x=1.2
if x==ganzezahl:
    print"ja"
if x!=ganzezahl:
    print"nein"
(in diesem fall müsste also "nein" rauskommen)

mfg
LP640

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 20:27
von Hyperion
So z.B.:

Code: Alles auswählen

In [2]: isinstance(4, int)
Out[2]: True

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 20:47
von DaMutz
ich würde es eher so machen:

Code: Alles auswählen

In [1]: 1.5 % 1
Out[1]: 0.5

In [2]: 1.0 % 1
Out[2]: 0.0

In [3]: 1 % 1
Out[3]: 0

In [4]: 6 % 1
Out[4]: 0

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 20:54
von numerix
DaMutz hat geschrieben:ich würde es eher so machen:
Verstehe ich nicht.

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 21:06
von b.esser-wisser

Code: Alles auswählen

int(x) == x 
... oder ist das zu einfach

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 21:09
von DaMutz
Für mein Verständnis ist 1.0 auch eine ganze Zahl, aber wahrscheinlich war das Falsch :oops:

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 21:10
von cofi
b.esser-wisser hat geschrieben:

Code: Alles auswählen

int(x) == x 
... oder ist das zu einfach
Und zu kaputt:

Code: Alles auswählen

>>> int(1.0) == 1.0
True

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 21:19
von nomnom
numerix hat geschrieben:
DaMutz hat geschrieben:ich würde es eher so machen:
Verstehe ich nicht.
Na, er meint, dass man prüfen kann, ob `x` eine ganze Zahl ist, wenn ein `% 1` 0 ergibt, also bei einer Teilung durch Null kein Rest bleibt. Logisch, oder? Ganzzahl != ganze Zahl IMHO

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 21:20
von b.esser-wisser
@cofi:
Wieso kaputt?
Ich hab das so verstanden, dass "1.0" als Ganze Zahl gilt.
Sonst reicht natürlich "isinstance(x, int)" bzw. stellt sich die Frage gar nicht.

Oder besser: Konzept überdenken - denn das riecht komisch

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 22:27
von LP640
wow, vielen dank für die zahlreichen antworten
ich habe aber gleich schon das nächste problem:
weiß einer, wie man zahlen abrunden kann?
also zum beipiel:

Code: Alles auswählen

>>> x=1.672
>>> round(x)
2.0
das wäre jetzt aufrunden, aber wie kann ich x auf 1 abrunden???

mfg
LP640

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 22:31
von LP640
ich habe gerade eben eine lösung gefunden:

Code: Alles auswählen

>>> x=1.672
>>> y=round(x)
>>> if y>x:
	x=x-1
	round(x)

	
1.0
:wink:
aber gibt es da einen weniger umständlichen befehl?

Re: ganze zahlen erkennen

Verfasst: Montag 15. November 2010, 22:33
von cofi

Re: ganze zahlen erkennen

Verfasst: Dienstag 16. November 2010, 08:54
von mkesper
Der Unterschied zwischen Auf- und Abrunden beträgt 0.5. ;)