PHP: Rekenen met decimalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Jacobs

Dennis Jacobs

01/06/2012 19:11:36
Quote Anchor link
Ik heb een script gemaakt dat een waarden pakt van een andere site en deze vermenigvuldigd met 2. Alleen deze waarden worden allemaal afgerond op gehelen...
Ik heb al geprobeerd met number_format() maar dit helpt niet?

Desbetreffende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
//voorbeeld van de waarden
$prijs_edit = 6.79;

//Winstfactor
$prijs_product = $prijs_edit * 2;
$prijs_uitkomst = number_format($prijs_product, 2, ',', ' ');
?>


Alvast bedankt.
Gewijzigd op 01/06/2012 19:28:54 door Dennis Jacobs
 
PHP hulp

PHP hulp

13/05/2024 22:16:20
 
Bart V B

Bart V B

01/06/2012 19:27:28
Quote Anchor link
En als je nou eens leert om cijfers buiten quotes te zetten, en decimalen met een punt te maken dan kom je al een heel eind. ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
//voorbeeld van de waarden
$prijs_edit = 6.79;

//Winstfactor
$prijs_product = $prijs_edit * 2;
$prijs_uitkomst = number_format($prijs_product, 2, ',', ' ');

echo $prijs_uitkomst;
?>
 
Dennis Jacobs

Dennis Jacobs

01/06/2012 19:28:40
Quote Anchor link
Owja sorry even niet op gelet, maar helaas is dit het probleem niet maar een stomme fout bij het voorbeeld :S
Ik pas het even aan.
 
Bart V B

Bart V B

01/06/2012 19:31:34
Quote Anchor link
Quote:
Alleen deze waarden worden allemaal afgerond op gehelen...


Quote:
Owja sorry even niet op gelet, maar helaas is dit het probleem niet maar een stomme fout bij het voorbeeld :S


Zucht, de slimste thuis?
Wat word er nou nog afgerond?
De uitkomst is 13,58 en volgens mijn telraam klopt dit precies...
 
Dennis Jacobs

Dennis Jacobs

01/06/2012 19:38:14
Quote Anchor link
Bij mij gebeurt er dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo "$prijs_raw"; // uitkomst = 18,60
echo "<br />";
echo "$prijs_uitkomst"; // uitkomst = 36,00
?>
Gewijzigd op 01/06/2012 19:39:17 door Dennis Jacobs
 
Bart V B

Bart V B

01/06/2012 19:40:55
Quote Anchor link
laat nog eens wat meer code zien.
Want je doet iets helemaal verkeerd.

De uitkomst met je script moet zijn: 37,20

Ah, probleem gevonden..
VARIABELEN BUITEN QUOTES!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo $prijs_raw; // uitkomst = 18,60
echo '<br />';
echo $prijs_uitkomst; // uitkomst = 36,00
?>


en die comma moet een punt zijn, als dat niet zo is, dan moet je met str_replace() dit even omzetten.
Gewijzigd op 01/06/2012 19:46:43 door Bart V B
 
Dennis Jacobs

Dennis Jacobs

01/06/2012 19:48:14
Quote Anchor link
Bij deze de hele code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
$url
= "http://www.pagina.nl"; //De pagina
$raw = file_get_contents($url); //complete pagina zit nu in één string

//alle witregels in het script eruit

$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B");
$content = str_replace($newlines, "", html_entity_decode($raw));

//begin van de tabel
$start = strpos($content,'<table border="1" cellpadding="1" cellspacing="1" style="width: 326px; height: 173px">');
//eind van de tabel
$end = strpos($content,'</table>',$start) + 8;

//Extracten van data
$table = substr($content,$start,$end-$start);



preg_match_all("|<tr(.*)</tr>|U",$table,$rows);
                            
echo '<table    width="400px"
                                            border="1">'
;
                                
foreach ($rows[0] as $row){
                            
if ((strpos($row,'<th')===false)){
                            
                                    preg_match_all("|<td(.*)</td>|U",$row,$cells);
                            
                            
$item = strip_tags($cells[0][0]);
                            
$prijs_raw = strip_tags($cells[0][1]);
                            
$position = strip_tags($cells[0][2]);
                    
                            
//Filter ongewenste tekst eruit
$prijs_raw = strip_tags($cells[0][1]);
$prijs_edit = preg_replace("/[^0-9,]/", "", $prijs_raw);
                                    //Winstfactor
                                    $prijs_product = $prijs_edit * 2;
                                    $prijs_uitkomst = number_format($prijs_product, 2, ',', ' ');
                                    
                            
$position = strip_tags($cells[0][2]);
                                    
echo "<tr><td> {$position} {$item} </td><td> {$prijs_uitkomst} </td></tr>";
                        
    }
}

echo '</table>';
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/06/2012 20:30:02
Quote Anchor link
Kijk eens naar de round functie
 
Dennis Jacobs

Dennis Jacobs

01/06/2012 20:40:54
Quote Anchor link
Het probleem is al opgelost, bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.