Wie kann ich mit dem Komma rechnen bei Python String?

3 Antworten

Wenn ich das aus deinem Kommentar richtig verstanden habe, sind bei dir Ganzzahl und Nachkommastelle aufgetrennt.

Rechnerischer Ansatz:

number = 5
decimalPlace = 2
floatingNumber = number + (decimalPlace / 10)

wobei die Länge der Nachkommastelle bedacht werden muss. Würde sie bspw. den Wert 202 haben, würde die Rechnung durch 10 nicht ausreichen.

Oder via String-Bearbeitung:

number = 5
decimalPlace = 2
floatingNumberAsString = str(number) + "." + str(decimalPlace)
(...) aber mir wird immer eine Fehlermeldung angezeigt (...)

Bitte poste deinen Code bei Fragen auf GF immer in editierbarer Form (bspw. via pastebin.com, wenn du mit dem GF-Editor nicht zurecht kommst) und gib auch die genauen Fehlermeldungen mit an.

Ja ich weiß aber wie soll ich das aufschreiben? Z.B
a=str(c.a+b.a)
das Problem ist nur da das ich eine Fehlermeldung bekomme

... Du kannst folgendes machen:

z1 = float(str(c) + "." + str(a))
z2 = float(str(b) + "." + str(a))
a  = str(z1 + z2)

Warum machst du es so kompliziert?

Wieso versuchst du Kommazahlen so zusammenzusetzen?

PS.: Bitte poste keine Fotos zum Quellcode sondern kopiere und füge den Quellcode direkt ein - so kann man den schnell selber ausführen und debuggen. Außerdem hilft es nicht zu sagen, dass du eine Fehlermeldung bekommst. Wir sollten normalerweise schon wissen welchen Fehler du bekommst sonst kann dir meist keiner helfen!

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)
TheRealAlli 
Fragesteller
 25.03.2019, 17:23

Also wir hatten halt in Informatik diese Aufgabe bekommen einen Taschenrechner zu Programmieren und hatten auch eine kleine Vorlage, das Problem war, dass selbst mein Lehrer nicht wusste wie ich das machen soll.

Achso und bei mir kommt immer noch dieselbe Fehlermeldung nämlich: ValueError: invalid literal for int() with base 10: ‘2,5‘

0
Mark Berger  25.03.2019, 17:32
@TheRealAlli

Klar, denn Python akzeptiert nur die amerikanische Schreibweise mit . statt ,

Die Lösung ist:

>>> zahl = float(input("Zahl 1: ").replace(",", "."))
Zahl 1: 3,6
>>> zahl
3.6

Wenn du übrigens diesen Fehler 1:1 in Google suchst bekommst du genau diese Antwort von dutzenden Quellen!

Vor allem diese kleinen Anfänger-Probleme bekommst mit einer Google-Suche gut gelöst. Einen Crashkurs gibt es auch auf meiner Seite: https://hackenlernen.com/blog.php?t=python_3_crashkurs

0
Mark Berger  25.03.2019, 17:43
@Mark Berger

PS.: Es geht viel viel viel kürzer:

rechn = ""
while rechn != "0":
    rechn = input("Rechnung: ").replace(",", ".")
    try:
        erg = eval(rechn)
        print("= " + str(erg))
    except:
        print("Kann "+rechn+" nicht berechnen!")

Klappt perfekt:

Rechnung: 3+7-1,5
= 8.5
Rechnung: 7*2+1
= 15
Rechnung: 7*(2+1)
= 21
Rechnung: 8*6g
Kann 8*6g nicht berechnen!
Rechnung: 0
= 0
1

Üblicherweise mit einem Punkt.

TheRealAlli 
Fragesteller
 25.03.2019, 16:35

Ja ich weiß aber wie soll ich das aufschreiben? Z.B

a=str(c.a+b.a)

das Problem ist nur da das ich eine Fehlermeldung bekomme

0