php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 26.01.2012, 16:30  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
Adelpatt befindet sich auf einem aufstrebenden Ast
Standard Javascipt Berechnung mit Komma

Hallo

erst einmal ich bin absoluter Laie, hab wir aber mal was zusammengebastet:
Code:
var Prozent = this.getField("Einspielergebnis3").value; 
 
if (this.getField("Einspielergebnis3").value==""){
this.getField("Steuer3").value = "";
}

else
if(this.getField("Einspielergebnis3").value>="750"){
this.getField("Steuer3").value = Prozent*8/100;
}

else
if(this.getField("Einspielergebnis3").value<="750"){
this.getField("Steuer3").value = "60,00";
}

Die Berechnung funktioniert auch soweit, außer man gibt z.b eine 1000,22 ein, bis 750 "versteht" er es.

Habe nun das hier im großen Inet gefunden:
Code:
var neuProzent = Prozent.replace(/,/, ".");  oder
Prozent = parseFloat(document.getElementById('Prozent').value.replace(',', '.'));
in 2. Zeile eingefügt

Damit funktioniert es leider auch nicht richtig, ich hoffe Ihr könnt mir helfen.

Gruß Adel
Adelpatt ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.01.2012, 16:40  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Damit funktioniert es leider auch nicht richtig
Das heißt?

Könntest Du mal den kompletten Code posten?
xm22 ist offline   Mit Zitat antworten
Alt 27.01.2012, 08:08  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
Adelpatt befindet sich auf einem aufstrebenden Ast
Standard

Bin selber einen Schritt weiter gekommen

Code:
var Prozent = parseFloat(this.getField("Einspielergebnis3").value); 

if (Prozent == "" || Prozent == null){
this.getField("Steuer3").value = "";
}
else if(Prozent > 750){
this.getField("Steuer3").value = Prozent * 8/100;
}
else if(Prozent <= 750){
this.getField("Steuer3").value = "60,00";
}
Es gibt nur noch ein Rundungsproblem,
z.B. bei 1000,44 kommt das Ergebnis 80,00, sollt aber eigentlich 80,04.

Hättest du auf die schnelle eine Idee

Gruß
Adel
Adelpatt ist offline   Mit Zitat antworten
Alt 27.01.2012, 08:35  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

und wo ist das Ersetzen des Kommas geblieben?
jspit ist offline   Mit Zitat antworten
Alt 27.01.2012, 08:55  
Erfahrener Benutzer
 
Benutzerbild von Nullraff
 
Registriert seit: 27.10.2010
Beiträge: 183
PHP-Kenntnisse:
Fortgeschritten
Nullraff befindet sich auf einem aufstrebenden Ast
Standard

Aus der Doku:
Zitat:
parseFloat(): ... Als Dezimalzeichen wird jedoch nur der Punkt interpretiert. Sinnvoll, um z.B. Anwendereingaben in Zahlen umzuwandeln, mit denen man anschließend rechnen kann.
__________________
Kaum macht man's richtig, schon geht's
Nullraff ist offline   Mit Zitat antworten
Alt 27.01.2012, 10:20  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
Adelpatt befindet sich auf einem aufstrebenden Ast
Standard

ohh stimmt, falscher Code, geht aber jetzt

Zitat:
var Prozent = parseFloat(this.getField("Einspielergebnis3").valu e.replace(',', '.'));

if (Prozent == "" || Prozent == null){
this.getField("Steuer3").value = "";
}
else if(Prozent > 749){
this.getField("Steuer3").value = Prozent * 8/100;
}
else if(Prozent <= 749){
this.getField("Steuer3").value = "60,00";

}

Geändert von Adelpatt (27.01.2012 um 10:30 Uhr).
Adelpatt ist offline   Mit Zitat antworten
Alt 27.01.2012, 12:28  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Noch nicht 100%ig. Prozent ist jetzt vom type number (oder NaN im Fehlerfall), dein erstes if greift also nicht. Schau dir isNaN() an.
jspit ist offline   Mit Zitat antworten
Alt 02.02.2012, 08:25  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
Adelpatt befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Noch nicht 100%ig. Prozent ist jetzt vom type number (oder NaN im Fehlerfall), dein erstes if greift also nicht. Schau dir isNaN() an.

Ja hast Recht, wenn man eine Zahl eingibt kommt das Ergebnis, wenn man nun die Zahl wieder löscht, bleibt das Ergebnis stehen.
Mit isNaN() hab ich leider noch nicht hinbekommen.
Adelpatt ist offline   Mit Zitat antworten
Alt 02.02.2012, 09:29  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Code:
if (isNaN(Prozent)){
  this.getField("Steuer3").value = "";
}
Dein letztes if ist überflüssig, hier reicht else. Für den einen Fall gibst du das Ergebnis mit Komma aus (60,0), nicht jedoch bei der Berechnung. Dort kannst du auch mit replace arbeiten, nachdem du ein string erzeugt hast (toFixed())
jspit ist offline   Mit Zitat antworten
Alt 03.02.2012, 08:59  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
Adelpatt befindet sich auf einem aufstrebenden Ast
Standard

leider funktioniert es trotzdem nicht

Code:
var Prozent = this.getField("Einspielergebnis3").value; 
  
var Prozent = Prozent.replace(/,/, ".");




if (isNaN(Prozent)){
  this.getField("Steuer3").value = "";
}


else
if(this.getField("Einspielergebnis3").value<="750"){
this.getField("Steuer3").value = "60,00";
}

else
(this.getField("Einspielergebnis3").value>="50"){
this.getField("Steuer3").value = Prozent*8/100;

}
Zitat:
Zitat von jspit Beitrag anzeigen
Code:
if (isNaN(Prozent)){
  this.getField("Steuer3").value = "";
}
Dein letztes if ist überflüssig, hier reicht else. Für den einen Fall gibst du das Ergebnis mit Komma aus (60,0), nicht jedoch bei der Berechnung. Dort kannst du auch mit replace arbeiten, nachdem du ein string erzeugt hast (toFixed())
Ja ich weiß, aber bei der Berechnung wird trotzdem eine Komma Zahl angezeigt
Adelpatt ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MYSQL - Komma und Punkt Madenar76 Datenbanken 4 14.01.2012 20:18
[Erledigt] MySQL Berechnung innnerhalb eines Feldes Aldaris Datenbanken 6 11.10.2011 13:52
[Erledigt] Nach letztem Wert kein Komma phpameise PHP Einsteiger 12 28.09.2011 23:45
Werte in Datenbank durch Komma getrennt und Probleme bei der Ausgabe Marly PHP Einsteiger 7 09.08.2011 11:04
Komma statt Punkt dennis130790 Datenbanken 10 12.12.2010 22:12
[Erledigt] Wie kann ich den letzten Array Wert ohne Komma ausgeben? Jackson5 PHP Tipps 2009 3 17.03.2009 15:32
[Erledigt] Letztes Komma aus Array entfernen Jackson5 PHP Tipps 2009 5 16.03.2009 18:00
Berechnung über mehrere Abfragen aus mysql Slappi PHP Tipps 2008 2 18.12.2007 14:22
komma statt punkt in berechnung Sclot HTML, Usability und Barrierefreiheit 8 27.12.2005 19:11
Str_Replace mit Komma phpbeginner PHP Tipps 2005-2 3 23.08.2005 15:28
[Erledigt] Berechnung nicht ganz korrekt PHP Tipps 2005-2 6 20.06.2005 16:42
berechnung im select für eine andere berechnung benutzen Datenbanken 4 13.05.2005 11:29
Komplizierte Berechnung - HILFE! djma PHP Tipps 2005 8 25.04.2005 21:38
Shit Komma Soll Weg :D Skazi PHP Tipps 2004 11 04.11.2004 08:48
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
this.getfield rechnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum