Hi Leute,
ich verzweifel bald! Ich baue gerade an einem Script in dem ich von zwei Jahren Fortbildungsstunden ändern und ansehen will. Das erste Jahr ist immer das vergangene Jahr, da man die Stunden immer im Vorraus leisten muss. In unserem Fall Stunden für 2008 die 2007 geleistet wurden. Das zweite Jahr ist dann logischer Weise 2009. Wenn in 2007 nicht genügen Stunden geleistet wurden, können diese nachträglich in 2008 nachgeholt werden. Heißt wenn ich Jahr 2008 den Wert 29 Stunden habe und 2 Stunden zubuche wird 2008 auf 30 und 2009 auf 1 gesetzt. Dies nur zum Verständnis was gemacht werden soll.
Das Problem besteht nun dadrin, das ich auch halbe Stunden buchen muss. Die Eingabe findet durch ein Formular statt. Somit kann der benutzer anstatt dem geforderten "." auch ein "," zwischen die Dezimalzahlen setzten. Die Lösung dafür habe ich soweit auch bereits gefunden. Dies klappt aber nur mit Zahlen über 1, also +/-1,5 etc. Bei 0,5 passiert bei meinem Script garnichts!
Bei diesem Beispiel sollte ja 5,5 als Ergebnis herauskommen. Wenn ich anstatt dem "," den "." setzte läuft das Script! Hat jemand eine Idee wie ich auch bei der Eingabe 0,5 ein Ergebnis bekomme?
ich verzweifel bald! Ich baue gerade an einem Script in dem ich von zwei Jahren Fortbildungsstunden ändern und ansehen will. Das erste Jahr ist immer das vergangene Jahr, da man die Stunden immer im Vorraus leisten muss. In unserem Fall Stunden für 2008 die 2007 geleistet wurden. Das zweite Jahr ist dann logischer Weise 2009. Wenn in 2007 nicht genügen Stunden geleistet wurden, können diese nachträglich in 2008 nachgeholt werden. Heißt wenn ich Jahr 2008 den Wert 29 Stunden habe und 2 Stunden zubuche wird 2008 auf 30 und 2009 auf 1 gesetzt. Dies nur zum Verständnis was gemacht werden soll.
Das Problem besteht nun dadrin, das ich auch halbe Stunden buchen muss. Die Eingabe findet durch ein Formular statt. Somit kann der benutzer anstatt dem geforderten "." auch ein "," zwischen die Dezimalzahlen setzten. Die Lösung dafür habe ich soweit auch bereits gefunden. Dies klappt aber nur mit Zahlen über 1, also +/-1,5 etc. Bei 0,5 passiert bei meinem Script garnichts!
Code:
//Daten aus Formular $change[Test]=0,5; //Daten aus MySQL Datenbank $a->User="Test"; $a->actyear="5"; $a->nextyear="0"; //Rechnung if($change[$a->User]!="") { $g=ereg_replace(",",".",$change[$a->User]); $h=$a->actyear; //Eintrag Jahr 2008 $i=$a->nextyear; //Eintrag Jahr 2009 echo "$a->User g=$g, h=$h, i=$i<br>"; //Zur Kontrolle ob gerechnet wurde if($change[$a->User]>0.00) { if($h<30){if($h+$g>30){ $j=$h+$g-30.00;$i=$j;$h=30.00;}else{$h=$h+$g;}}else{$i=$i+$g;} } if($change[$a->User]<0.00) { $r=$i - abs($g); if(($i>0.00&&$i-abs($g)<0.00)||$i<=0.00){$j=abs($i-abs($g));$i=0.00;if($h-$j<0){$h=0;}else{$h=$h-$j;}}else{$i=$i-abs($g);} } echo "$a->User g=$g, h=$h, i=$i<br>"; //Zur Kontrolle ob gerechnet wurde }

Kommentar