Andererseits ginge vielleicht auch das hier:
Code: Alles auswählen
import math
def is_integerish(x):
return math.floor(x) == math.ceil(x)
Im Übrigen solte man erwähnen, dass floating point Zahlen so verglichen werden sollten:
Code: Alles auswählen
EPSILON = ... # hier bitte ein hinreichend kleines float zuweisen
def feq(x, y):
return abs(float(x)-float(y)) < EPSILON
wobei EPSILON passend gewählt werden muss. Entsprechend würde der Code zum Testen von Ganzzahligkeit etwa so aussehen:
Code: Alles auswählen
def is_integerish(x):
return feq(x, math.floor(x)) or feq(x, math.ceil(x))
Auch das kann allerdings in die Hose gehen, wenn EPSILON falsch gewählt wurde.
In specifications, Murphy's Law supersedes Ohm's.