| 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! |
 |

29-12-2010, 13:13
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Rechenergenisse falsch bzw. ungenau
Rechenergebnisse ungenau bzw. weichen stark ab. Dies hat nichts mit den Nachkommastellen zu tun. Nur die Ergebnisse von
$ergebnis3
$ergebnis4
$ergebnis5
weichen stark ab bzw. sind falsch
Kann mir jemand sagen woran der Fehler liegt?
PHP-Code:
<?php
if (!empty($_POST["submit"]))
{
$_zahl1 = $_POST["zahl1"];
$_zahl2 = $_POST["zahl2"];
$_zahl3 = $_POST["zahl3"];
{
$ergebnis = pow($_zahl1,2)*(acos(1-$_zahl2/$_zahl1))-sqrt(2*$_zahl1*$_zahl2-pow($_zahl2,2))*($_zahl1-$_zahl2);
$ergebnis = number_format ($ergebnis,2, ",", ".");
echo $ergebnis."   cm² ist die Fläche des Kreisabschnitts     $i     <br />";
$ergebnis2 = $ergebnis*$_zahl3;
$ergebnis2 = number_format ($ergebnis2,2, ",", ".");
echo $ergebnis2."   Liter pro Sekunde     $i     <br />";
$ergebnis3 = $ergebnis2*60;
$ergebnis3 = number_format ($ergebnis3,2, ",", ".");
echo $ergebnis3."   Liter pro Minute     $i     <br />";
$ergebnis4 = $ergebnis2*3600;
$ergebnis4 = number_format ($ergebnis4,2, ",", ".");
echo $ergebnis4."   Liter pro Stunde     $i     <br />";
$ergebnis5 = $ergebnis2*3600*24;
$ergebnis5 = number_format ($ergebnis5,2, ",", ".");
echo $ergebnis5."   Liter pro Tag     $i     <br />";
}
}
?>
|

29-12-2010, 13:31
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Mir geht es jetzt nur um die Rechenergebnisse, nicht um die übersichtlichere Schreibweise.
Zitat:
Zitat von medium22
|
|

29-12-2010, 13:35
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Zitat:
Zitat von Rudi-Ratloss
Dies hat nichts mit den Nachkommastellen zu tun.
|
Um genau zu sein doch.
Natürlich bekommst du nicht das Ergebnis, dass du willst. Das hat auch einen einfachen Grund: Du formatierst deine Ausgabe so um, dass PHP dein Tausendertrennzeichen als Dezimaltrennzeichen verwendet. Wenn du weiter mit den Werten rechnen willst, solltest du eine unformatierte Variante verwenden.
Darüberhinaus: Du solltest bei jeder Benutzung von pow und dynamischen (vermutlich sogar noch Benutzerdefinierten) Werten prüfen, ob eine Berechnung überhaupt durchgeführt wurde!
|

29-12-2010, 13:58
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Das hat heirmit zu tun, wie muss ich das verändern?
PHP-Code:
$ergebnis = number_format ($ergebnis,2, ",", ".");
Zitat:
Zitat von unset
Um genau zu sein doch.
Natürlich bekommst du nicht das Ergebnis, dass du willst. Das hat auch einen einfachen Grund: Du formatierst deine Ausgabe so um, dass PHP dein Tausendertrennzeichen als Dezimaltrennzeichen verwendet. Wenn du weiter mit den Werten rechnen willst, solltest du eine unformatierte Variante verwenden.
Darüberhinaus: Du solltest bei jeder Benutzung von pow und dynamischen (vermutlich sogar noch Benutzerdefinierten) Werten prüfen, ob eine Berechnung überhaupt durchgeführt wurde!
|
|

29-12-2010, 15:12
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Am besten schreibst du die Ausgabe in eine andere Variable, wenn du weiter mit dem Wert rechnen willst. Wie das geht, solltest du ja wissen!
|

29-12-2010, 16:19
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Weis ich leider nicht, brauche dazu hilfe
Zitat:
Zitat von unset
Am besten schreibst du die Ausgabe in eine andere Variable, wenn du weiter mit dem Wert rechnen willst. Wie das geht, solltest du ja wissen!
|
|

29-12-2010, 17:15
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Du weißt wie man Variablen Werte zuweist. Mach das doch einfach, wo ist das Problem?!
|

29-12-2010, 18:50
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Danke für deine Hilfe weis aber nicht was du meisnt.
Kannst du den PHP Code mal hier Posten damit ich das endlich kapiere
Zitat:
Zitat von unset
Du weißt wie man Variablen Werte zuweist. Mach das doch einfach, wo ist das Problem?!
|
|

29-12-2010, 19:07
|
|
boeserfrosch
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 71
|
|
Er meint damit nix anderes als:
PHP-Code:
$var_fuer_spaetere_berechnung = $ergebnis;
und danach erst:
PHP-Code:
$ergebnis = number_format ($ergebnis,2, ",", ".");
|

29-12-2010, 19:58
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum nicht number_format() erst bei der Ausgabe ausführen? IMHO hat das bei der Verarbeitung nichts zu suchen, sondern gehört zur Ausgabe.
|

29-12-2010, 20:24
|
|
Rudi-Ratloss
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 24
|
|
Ich versuch noch ein mal dann geb ich es auf
Wer kann mir unten stehende PHP Gode rcihtig schreiben das er funktioniert
PHP-Code:
<?php
if (!empty($_POST["submit"]))
{
$r = $_POST["r"];
$h = $_POST["h"];
{
$ergebnis = r*h;
$ergebnis = number_format ($ergebnis,2, ",", ".");
echo $ergebnis."   cm² ist die Fläche des Kreisabschnitts     $i     <br />";
}
}
?>
Zitat:
Zitat von h3ll
Warum nicht number_format() erst bei der Ausgabe ausführen? IMHO hat das bei der Verarbeitung nichts zu suchen, sondern gehört zur Ausgabe.
|
|

30-12-2010, 00:07
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
In wievielen Threads willst du noch um Code betteln? Was versprichst du dir davon? Vom Kopieren lernst du es nicht. Ratschläge beherzigst du nicht. *close*
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
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
|