| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

02-12-2002, 10:53
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
weiso nur?
hallo, habe ein reisen problem, kann aber ncihts sagen warum das ist oder wieso das nicht immer so ist, aber vielleicht wisst ihr warum:
also, es geht im dem fall um kontostände.
habe mehre kunden die einen kontostand barufen müssen.
jetzt ist das so aufgebaut in eine mysql table, mit einer spalte die als decimal mit 10,2 definiert ist. in der wertden eingetragen g für gutschrift oder r für rechung, also minus und plus. und aus dem setzt sich der konto stand zusammen. jetzt ist es so, das es bei macnhen funzzt, habe auch beim herauslesen ltrim bzw. rtrim. nur bei macnhen zeigt er statt null
z.b sowas an:-8.52651282912E-14 wboei es simples addieren bzw. subtr. ist mit max 2 kommastellen !?!?
woran kann das liegen?
danke für jede info.
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 11:44
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
mit welcher Formel wird der Kontostand berechnet.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

02-12-2002, 13:22
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
wie gesagt ganz einfach addition bzw. subtr.
es ist ein typ ja in der table mit r oder g
je nachdem welcher typ es ist ist ein + oder ein -
also z.b
if($kontostand_array['typ'] =='r') {
$stand_knd= $stand_knd - $kontostand_array_betrag;
}elseif($kontostand_array['typ'] =='g') {
$stand_knd = $stand_knd + $kontostand_array_betrag;
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 13:33
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Könntest du mal die werte von
$stand_knd und $kontostand_array_betrag posten, bei denen der fehler auftritt.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

02-12-2002, 14:00
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
mmhh,h wie genau meisnt du das , kann dir die ausgabe shcicken wenn ich ein echo davor setze:
also der php-syntax lautet so:
PHP-Code:
if($kontostand_array['typ'] =='r') {
echo"<br>kontostand_array_betrag:-$kontostand_array_betrag ergibt:".$stand_knd= $stand_knd - $kontostand_array_betrag;
}elseif($kontostand_array['typ'] =='g') {
echo"<br>kontostand_array_betrag:+$kontostand_array_betrag ergibt:".$stand_knd = $stand_knd + $kontostand_array_betrag;
}
wobei immer als stand mit 0 begonnen wird,
und dann mit echo $stand_knd ausgegeben wird.
und so sie ht die ausgabe von de beilspiel aus:
kontostand_array_betrag:-1080.00 ergibt:-1080
kontostand_array_betrag:-50.40 ergibt:-1130.4
kontostand_array_betrag:+1080.00 ergibt:-50.4
kontostand_array_betrag:-80.40 ergibt:-130.8
kontostand_array_betrag:+50.40 ergibt:-80.4
kontostand_array_betrag:+80.40 ergibt:-8.52651282912E-14
hilft dir das weiter?
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 14:26
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Hi,
das problem muss an den Variablen liegen.
Wenn du die -1080 - 50,40 rechnest bekommst du -1130,4
wenn du -1130,4 +1080.00 rechnest kommst du auf -50,4
und dies ziehst sich bis an das Ende.
Die letzte komische Zahl sollte eigentlich 0 darstellen.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

02-12-2002, 14:32
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
eben, null würde auch passen.
es geht ja auch bei fast jeden nur sind leider 3 ausnahmen dabei wo ich echt nciht daraus schlau werde.
spalten def. passt aus der table.
keine leerzeichen,
kann es vielleicht am punkt statt , liegen, ich meine mysql mag ja keine , sondern nur . als kommastellen?
danke
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 14:32
|
|
slarti
Member
|
|
Registriert seit: Jun 2002
Ort: berlin
Beiträge: 448
|
|
...genau. wegen der unterschiedlichen mantissenlängen is z.B. -80.4 + 80.40 nicht genau 0, sonder nur was
klitzekleines. also entweder gleiche mantissen oder halt round()...
__________________
eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùûä¶³Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");
|

02-12-2002, 14:38
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Hoffe es hat dir bis jetzt weitergeholfen.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

02-12-2002, 15:05
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
also, resultate:
habe jetzt sachen gemacht wie statt 3,40 zu 3,41 gemacht usw.=> negativ, nach wie vor das selbe.
habe einen round ($betrag,2); gemacht steht dort -0 ;-),auch nicht das wahre,
dann habe ich ein
PHP-Code:
ereg_replace('.',',',$kontostand_array['betrag']);
gemacht, na das war erst lustig, der konnte mir keine punkte ersetzen, ich meine nicht ordentlich, er hat statt punkte und zahlen nur mehr ,,,,, gmeacht !?!?!?!
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 15:09
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Die Punkte bei den zahlen stimmen ja. Die nachstellen werden mit . definiert und nicht mit ,
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

02-12-2002, 15:11
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
tja, dann schauts aber schlecht aus, das kann doch kein bug sein, oder?
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 15:15
|
|
slarti
Member
|
|
Registriert seit: Jun 2002
Ort: berlin
Beiträge: 448
|
|
...kein bug, bekanntes problem.
sollte aber mit
PHP-Code:
$stand_knd = round($stand_knd + $kontostand_array_betrag,2);
behoben sein.
__________________
eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùûä¶³Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");
|

02-12-2002, 15:16
|
|
mickey
Junior Member
|
|
Registriert seit: Mar 2002
Beiträge: 152
|
|
also ich habs nun,
es stören sehr wohl die punkte !!
man muss ein ereg_replace machen.
z.B.
PHP-Code:
$kontostand_array_betrag = ereg_replace('\\.',',',$kontostand_array['betrag']);
aber den . als regluären ausdrukc behandeln, also mit \.
dann gehts.
danke
__________________
bei fragen immer
windows - pc: Start -> Ausführen -> cmd (command) - format c:
linux : lass es , es hat sicher einen sinn so
--
php-forum.at
>>>>dont ask me why<<<<
|

02-12-2002, 15:21
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Cool,
ich dachte aber die kommastellen werden bei PHP mit . getrennt, und nicht mit einem , !!!
Wieder etwas dazugelernt.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|