Warum sind total_amount
und tax_amount
als Strings aneinandergereiht und nicht als Zahlen in der unteren println
-Anweisung?
Das liegt an der Priorität des Operators. Grundsätzlich macht Ihr Code das Äquivalent von:
%Vor% Wenn also total_amount
100 ist und tax_amount
20 ist, lautet das:
was wie folgt bewertet wird:
%Vor%was wie folgt bewertet wird:
%Vor%Optionen:
Verwenden Sie Klammern, um anzuzeigen, wie die Vorgänge gruppiert werden sollen:
%Vor%Führen Sie zuerst die Summierung durch und speichern Sie sie in einer neuen Variablen:
%Vor%Als Randnotiz empfehle ich:
underscores_separating_words
, z. taxAmount
anstelle von tax_amount
total_amount
zu haben, aber dann etwas anders mit der Bezeichnung Total amount
zu drucken
Wenn Sie auch Code formatieren, erhalten Sie:
%Vor% (Sie sollten auch überlegen, was Sie für nicht-ganzzahlige Preise tun werden ... Ich würde entweder Ganzzahlen verwenden, aber die Anzahl der Cent / Pennies / was auch immer, oder BigDeciml
zur Darstellung verwenden Preise.)
Java geht davon aus, dass Sie die Werte als Zeichenfolgen verketten möchten. Sie können dies verhindern, indem Sie Klammern verwenden:
%Vor% Durch Hinzufügen der Klammern werden die beiden Werte hinzugefügt, bevor das Ergebnis der Addition und die "Total amount :"
-Zeichenfolge verkettet werden.
Dies tun
%Vor%entspricht dem Drucken
Die Verkettung von total_amount und tax_amount nach dem Zeichenfolgenliteral Gesamtbetrag:
, so dass dort keine mathematische Operation ausgeführt wird
total_amount enthält den Wert 100 und tax_amount 20 also die Ausgabe 10020
mache stattdessen
%Vor%