Das sollte gehn:
Eingabe: zahl
var vk = parseInt(zahl);
var nk = (zahl - vk);
Hallo, ich bin nicht der größte Profi und benötige etwas Hilfe, da ich nicht weiss, wie ich das Problem löse.
Ich habe Werte im Bereich 0,00 - 150,00 welche in das Programm eingehen (z.B. 110,01 // 119,04 // 99,07 usw.)
Eine Weiterverarbeitung soll jedoch nur erfolgen, wenn der Wert genau auf XXX,05 endet (also 119,05 oder 87,05)
Wie kann ich das gestalten, dass nur exakt bei Werten mit ,05 hinter dem Komma eine Weiterverarbeitung läuft?
Kann ich zusätzlich die eingehenden Werte auch "aufteilen", so dass ich (z.B. bei 119,07) den Wert vor dem Komma (hier also 119) und den Wert hinter dem Komma (hier also 07) separat weiterverarbeiten kann?
Für Hilfe wäre ich dankbar.
MfG, Tokoloko
Geändert von Tokoloko (29.05.2006 um 09:34 Uhr)
Das sollte gehn:
Eingabe: zahl
var vk = parseInt(zahl);
var nk = (zahl - vk);
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
Ich nehme an, die Werte werden auch so eingeben, mit Komma, nicht mit Dezimalpunkt? Dann funktioniert 321s Lösung auch nicht.
Mit String.split() kann man den Wert problemlos aufteilen:
Nun ist aufgeteilterWert ein Array mit dem Vorkomma-Teil in aufgeteilterWert[0] und dem Nachkomma-Teil in aufgeteilterWert[1]. Hat das Array nur ein Element oder mehr als zwei, so war die Eingabe falsch formatiert.Code:aufgeteilterWert = eingabe.split(',');
Wenn aber diese Werte als Zahlen berechnet worden sind, dann sind das keine Kommata, die in den Werten vorhanden sind, sondern Punkte. Dann funktioniert 321s Lösung einwandfrei.
Ja, ich bin von Punkten ausgegangen.
Leider zeigte ein Test nun, dass es doch nicht einwandfrei funktioniert:
Bei zahl = 119.05 sieht nk so aus: 0.04999999999999716
oder bei 119.06 so: 0.060000000000002274
Weiss der Teufel, wo das herrührt!?
Also doch besser splitten und jeweils erst testen!
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
Ach ja... natürlich...
JavaScript ist nicht immer sehr genau mit der Mathematik. Eigentlich dachte ich, die Zeiten solcher Fehler wären schon längst vorbei, aber.... nun ja. Ich glaube, es hat damit zu tun, dass Computer in Binär rechnen.
Bei Multiplikationen und vorallem Divisionen mag das sein, aber bei Simplen Subtraktionen wo keine unendlichen Nachkommastellen mitspielen?
Dezimal-Arithmetik ist wohl zu viel verlangt von Javascript ...
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)