Der Martin: Wo steckt der angezeigte Wert ?

Beitrag lesen

Hallo,

Einziger wehrmutstropfen: Endet der errechnete Preis auf z.B. 10,90 Euro, zeigt mir das Programm 10.9 Euro an und unterschlagt die Ziffer null. Bei 10.95 hingegen ist alles ok. Wieso löscht Javascript die null ?

das ist völlig normal - es ist in allen Programmiersprachen üblich, bei Fließkommazahlen nur soviele Ziffern wie nötig anzugeben. Das "Problem" trifft dich noch heftiger, wenn du zufällig mal einen glatten Euro-Betrag hast, dann werden dir nämlich _gar keine_ Nachkommastellen angezeigt.

Abhilfe: Berechne die Preise intern alle in Cent, und gib bei der Ausgabe den Vor- und Nachkommaanteil getrennt aus:

~~~javascript vorkomma  = Math.floor(Preis/100);
  nachkomma = Preis % 100;
  alert(vorkomma + "." + nachkomma);

  
Damit vermeidest du auch das Rundungsproblem, das bei der Addition von Fließkommazahlen gern auftritt und dazu führen kann, dass du nach dem Zusammenzählen von mehreren Posten plötzlich 223.80000001 EUR rauskriegst.  
  
Aber Vorsicht: Bei negativen Werten gibt der obige Codefetzen unsinnige Werte aus.  
  
So long,  
 Martin  

-- 
Es gibt Dinge, die sind sooo falsch, dass nicht einmal das Gegenteil stimmt.