Wie man Zahl ohne Nachkommastellen?

tunnid = int(input("Sisestage oma töötundide arv ühes nädalas: "))
tasu = int(input("Sisestage oma tunnitasu: "))

if tunnid <= 40:

    print("Teie nädalapalk on " + str(tunnid*tasu))

else:

    print("Teie nädalapalk on " + str(tunnid*tasu*1.5))

Wenn ich multiplizieren 60*10 wie sonst sollte ich bekommen 900, aber das Programm gibt mir 900.0
Also meine quiestion ist, wie Sie diesen .0 aus der Antwort, was muss ich ändern in meinem code?

p.s ich bin nur ein Anfänger so nicht beurteilen, bitte 🙂

  • Das sollte nicht selbst führen; Sie können nicht fügen Sie einen string und einen integer. Nicht erhalten Sie einen TypeError?
  • Nein, es läuft normalerweise verwende ich so genannte Thonny btw
  • Eine operation zwischen einem int und ein float gibt eine float, ob oder nicht das Ergebnis konnte dargestellt werden, wie eine int genau. Gibt es einen Grund, warum Sie kümmern? Könnten Sie vermehren sich durch 3 teilen dann durch die (integer) 2 (oder geben Sie einfach die resultierenden float int fallen die nicht-integer-Teil) und Lebe mit den daraus resultierenden Verlust der Genauigkeit, wenn das Produkt ungerade ist.



5 Replies
  1. 6

    Einfach konvertieren Sie die Zahl mit int:

    print('Teie nädalapalk on {}'.format(int(tunnid * tasu * 1.5)))

    Alternativ können Sie die format mini-Sprache:

    print('Teie nädalapalk on {:.0f}'.format(tunnid * tasu * 1.5))

    Den .0f sagt die Zahl abgeschnitten werden auf 0 Dezimalstellen (d.h. integer-Darstellung)

  2. 1

    Einfachste Weg sein wird, um Typ-cast der float Wert int. Zum Beispiel:

    >>> x = 100.0
    >>> x = int(x)
    >>> x
    100

    Daher, in Ihrem code, den Sie tun sollten:

    print("Teie nädalapalk on " + str(int(tunnid*tasu)))
    # Note: "str(tunnid*tasu)" replaced with "str(int(tunnid*tasu))"
  3. 0

    Grundsätzlich, wenn Sie wollen, dass Ihre Antwort eine ganze Zahl, wenn ich richtig bin, Sie können es tun, indem Sie
    Typisierung es auf integer als:

    print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5)))

    sollte es geben, genau das, was Sie wollen.
    weitere Informationen zur typecast von float zu int oder Umgekehrt, können Sie sich hier Peterbe.com

  4. 0

    Hinzufügen einer festgelegten operation zum konvertieren von float zu int. Statt str(tunnid*tasu*1.5) verwenden str(int(tunnid*tasu*1.5)).
    Aber dies Streifen die Nachkommastellen, auch wenn das Produkt keine ganze Zahl.
    Wenn Sie möchten, behandeln diesen Fall wie gut Sie hinzufügen müssen, um eine zusätzliche Kontrolle.

    if tunnid*tasu*1.5 - int(tunnid*tasu*1.5) > 1e-10:
    print("Teie nädalapalk on " + str(tunnid*tasu*1.5))
    else
    print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5)))

    1e-10 ist eine sehr kleine Zahl, nur um zu überprüfen, ob die Dezimalstellen nicht null ist. Sie senken könnte, wenn es weiter.

  5. 0
    >>> num = 900.0  # tunnid * tasu * 1.5
    >>> int(num) if num == int(num) else num
    900
    >>> num = 900.6  # tunnid * tasu * 1.5
    >>> int(num) if num == int(num) else num
    900.6

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.