Immer NaN, wenn das hinzufügen von Variablen, welche aus anderen Variablen
var dml = 30
var dd = parseFloat(document.getElementById("DriverD").value) <----- Only numbers like 10
var dm = dd-dml
alert((dd - dml) * 0.75) <----- This works
alert(dm * 0.75) <----- This returns NaN
alert(typeof(dm)) <----- This show that dm is a Number
Ich bin mir nicht sicher, warum ich immer NaN. Ich habe bereits versucht parseFloat
und parseInt
aber noch zeigen NaN bei der Multiplikation einer Variablen (dm) die aus Variablen (dd-dml). dm ist das Ergebnis der Subtraktion dml mit dd oder 10-30. Teilen Sie bitte Ihre Lösungen.
Ich bin neu hier und ich brauche Hilfe, bitte nicht den troll 🙂 ich werde versuchen, fügen Sie einen Kostenrechner auf meiner website.
typeof NaN
ist auch"number"
, konnte Siealert(dm)
statt der letzten?- Für mich funktioniert: jsfiddle.net/HfCrD
- Was ist der echte - Wert von
DriverD
element - DriverD ist ein Textfeld, und ich bin mit 10, die während der Fehlerbehebung für dieses Problem. Meine website ist eine einfache html/javascript-Seite.
- Können Sie neu erstellen, das problem auf JSFiddle oder einen link zu einer live-version, die wir sehen können?
- ICH HABE ES! WIE DUMM VON MIR. AUF MEINER EIGENTLICHEN WEBSITE, DIE ICH ERKLÄRT DM ERSTEN, BEVOR DD UND DML. FUNKTIONIERT JETZT DANKE JUNGS! 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint gut zu mir.
Möchte ich sagen, ein weiteres mögliches problem: Sie dont, überprüfen, ob
document.getElementById("DriverD").value
eine Zahl ist oder nicht. Wenn ein Benutzer eine Zeichenfolge oder eine andere Art, es wird zu einem problem.Versuchen, diese
Beiden Operanden müssen konvertieren parseFloat
Ergebnis ist -.2
Der einzige Grund, den Sie bekommen konnte
NaN
hier ist, dass der Wertdd
istNaN
. Da der Wert vondm
ist definiert alsdd - dml
und der Wert derdml
ist einNumber
Wert30
.parseFloat()
immer zurückNumber
Wert. Die-
- operator wandelt seinen Operanden inNumber
nur, wenn nötig. Also der Wert vondm
muss per definition einNumber
Wert.Jedoch
NaN
ist einNumber
Wert (typeof NaN === "number"
), und es ist "giftig": sobald ein operand istNaN
, das Ergebnis aller folgenden arithmetischen Operationen istNaN
.Das bedeutet, dass
parseFloat()
müssen zurückgegebenNaN
, was bedeutet, dass das argumentparseFloat()
könnte nicht interpretiert werden als Präfix eine dezimal-Zahl Darstellung.Einen gemeinsamen Grund dafür ist, dass der Benutzer eingegeben hat Tausendertrennzeichen (nicht unterstützt) oder ein Komma, während nur ein Dezimalpunkt wird unterstützt.
var dm = undefined - undefined
wo die Rechte Seite ist gleichwertig zuNumber(undefined) - Number(undefined)
,NaN - NaN
und schließlichNaN
. Variable Instanziierung geschieht, bevor der Initialisierung der Variablen. Variablen instanziiert sind mit derundefined
Wert derUndefined
Typ, nicht dernull
Wert derNull
Objekt-Typ.Versuchen diese eine
Ich bin ein Neuling, aber ich denke, es ist die Art Fehler, Lösung:
parseInt(Wert, 10) - wissen Sie, weil Sie verwendet parse float, aber zwei Rohre und keine kann verhindern, dass Sie von NaN als JavaSrcipt könnte die Behandlung von 0 als string.