2016-07-09 27 views
-2

Angenommen, ich habe eine Float-Nummer. Wenn es eine Ganzzahl ist (z. B. 1,0, 9,0, 36,0), möchte ich ".0 (Dezimalpunkt und Null)" entfernen und in stdout schreiben. Zum Beispiel wird das Ergebnis 1, 9, 36 sein. Wenn die Gleitkommazahl eine rationale Zahl wie 2.5335 und 95.5893 ist, möchte ich, dass die Ausgabe so ist, wie sie eingegeben wurde, was 2.5335 und 95.5893 bedeutet. Gibt es einen klugen Weg, dies zu tun?Wie kann ich ".0" von Float-Nummern entfernen?

Nur, ob die Zahl .0 oder andere Dezimalstellen hat. Ich kann sagen, meine Frage ist: Wie kann ich wissen, ob eine Gleitkommazahl tatsächlich eine Ganzzahl ist oder nicht?

Ich möchte dies verwenden, um Verzeichnisnamen zu entscheiden. Zum Beispiel, wenn ich 9.0 und 2.45 eingeben, mache zwei Verzeichnisse, dir9 und dir2.45.

+1

„wenn der Schwimmer Nummer eine rationale Zahl wie 2,5335 und 95,5893 ist, möchte ich die Ausgabe, wie sie eingegeben wurde sein.“ Was meinst du damit? – ifma

+0

Mögliches Duplikat von [Python: Division dezimal entfernen] (http://stackoverflow.com/questions/17651384/python-remove-division-decimal) – CheeseFry

+0

Vertrauen Sie Python ist korrekt, wenn es Ihnen sagt, eine bestimmte '1.0' nicht haben Nullen den ganzen Weg, oder möchten Sie nur die ersten Ziffern überprüfen, wie in Ihren Beispielen? – usr2564301

Antwort

1

Hier ist eine Funktion, um Ihre Zahlen so, wie Sie sie formatieren möchten:

def formatNumber(num): 
    if num % 1 == 0: 
    return int(num) 
    else: 
    return num 

Zum Beispiel:

formatNumber(3.11111) 

kehrt

3.11111


formatNumber(3.0)

kehrt

3