php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.02.2012, 17:32  
Neuer Benutzer
 
Registriert seit: 02.02.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Ocva befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Problem in while Schleife

Hallo,
in meinem Code wird zur Variable x mehrmals 0.1 addiert. Doch aus irgendeinen Grund kommt zwischen -0.1 und 0.1 eine völlig andere Zahl heraus als erwartet.
PHP-Code:
<?php
  $x
=-0.5;
  while (
$x <= 0.5) {
      echo 
$x;
      echo 
"<br>";
      
$x += 0.1;
  }           
?>
Ausgabe:

-0.5
-0.4
-0.3
-0.2
-0.1
-2.7755575615629E-17
0.1
0.2
0.3
0.4
0.5

Danke für eure Hilfe
Ocva ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.02.2012, 17:38  
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

Mit solchen Ungenauigkeiten bei float mußt du halt leben.
PHP-Code:
  $x=-5;
  while (
$x <= 5) {
      echo 
$x/10;
      echo 
"<br>";
      
$x ++;
  } 
jspit ist offline   Mit Zitat antworten
Alt 02.02.2012, 17:39  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zur Erklärung: http://www.php.net/manual/en/language.types.float.php

Lösung: http://php.net/manual/en/book.bc.php

PHP-Code:
 $x'-0.5';
  while (
$x <= '0.5') {
      echo 
$x;
      echo 
"<br>";
      
$x bcadd($x'0.1');
  } 

Geändert von Trainmaster (02.02.2012 um 18:07 Uhr). Grund: Float -> String
Trainmaster ist gerade online   Mit Zitat antworten
Alt 02.02.2012, 17:47  
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

bcdadd erwartet strings als parameter und ein scale-parameter. So kreiselt dies ohne Ende...
jspit ist offline   Mit Zitat antworten
Alt 02.02.2012, 17:56  
Neuer Benutzer
 
Registriert seit: 02.02.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Ocva befindet sich auf einem aufstrebenden Ast
Standard

Wie könnte man dann den scale-parameter anpassen, damit nicht so ein Wert rauskommt: -0.4000000000, sondern -0.4?
Ocva ist offline   Mit Zitat antworten
Alt 02.02.2012, 18:00  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Ist alles in der Dokumentation beschrieben . Entweder den dritten Parameter $scale verwenden oder http://www.php.net/manual/en/function.bcscale.php

Geändert von Trainmaster (02.02.2012 um 18:03 Uhr).
Trainmaster ist gerade online   Mit Zitat antworten
Alt 02.02.2012, 18:30  
Neuer Benutzer
 
Registriert seit: 02.02.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Ocva befindet sich auf einem aufstrebenden Ast
Standard

Danke, habs schließlich so gelöst.
PHP-Code:
$x rtrim(bcadd($x0.11000), 0); 
Ocva 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
Inhalt von while in DB speichern Radanua PHP Tipps 2010 3 01.08.2010 18:47
while Schleife abbrechen webdino PHP Tipps 2010 14 06.07.2010 10:39
while schleife in form kyle2010 PHP Tipps 2010 3 19.04.2010 18:14
while in while schleife patrick146 PHP Tipps 2010 13 08.02.2010 16:41
Werte aus WHILE Funktion verarbeiten efrasch PHP Tipps 2009 3 09.10.2009 06:28
[Erledigt] function getData() in while AXELB PHP-Fortgeschrittene 8 26.07.2009 16:21
[Erledigt] while() in while() Italo PHP Tipps 2009 16 29.06.2009 21:04
zwei while schleifen mit unterschiedlichen mysql tabellen mygov PHP Tipps 2009 12 01.01.2009 14:32
[Erledigt] probleme for bzw while phpmax PHP Tipps 2008 13 24.05.2008 21:12
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
2 verschachtelte while Schleifen. Großes Performanceproblem Datenbanken 3 30.05.2005 12:52
while schleife beenden PHP Tipps 2005 3 29.03.2005 20:35
Mit While selektieren und Daten rausholen (HILFE)!! Spike_php Datenbanken 7 12.12.2004 20:08
Nach while Schleife funzt nix mehr?! PHP Tipps 2004 15 25.08.2004 00:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
schleife 0.1 addieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:49 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