Strings optellen?
Waarom stop je er geen echte floats in?
Mja:
<?php
$totaal = (float) array_sum( $prijzen );
?>
Met gewone floats is de cast niet nodig denk ik, maar weet niet hoe PHP anders reageerd :)
Edit: Zonder werkt dus ook.
Kun je maar zien wat een simpel taaltje dat PHP is :X
$totaal = (float) array_sum($prijzen);
Ik krijg nu hetzelfde. Wel minder code ;)
Hoe krijg ik nu de decimalen?
Dit geeft decimalen ...
Heb het net getest met <?php
$prijzen = array( "4.95", "5.25", "1.10", "6.75" );
echo array_sum( $prijzen );
?>
Sorry, mijn getallen hebben komma's instead of punten voor het aangeven van decimalen.
Nick schreef op 10.04.2006 19:01
$totaal = (float) array_sum($prijzen);
Ik krijg nu hetzelfde. Wel minder code ;)
Hoe krijg ik nu de decimalen?
Met deze funcie moet dat volgens mij wel lukken:
(klik)
Ik zie geen werking :(
Jip, zou jij jouw gedachten kunnen schrijven als PHP code?
Het komt er op neer dat die functie ook punten gebruikt.
Een , gaat niet werken.
<?php
# Loopje door array
foreach( $prijzen as $prijs )
$prijs = str_replace( ',', '.', $prijs );
# Optellen en formatteren
$totaal = number_format( (float) array_sum( $prijzen ), 2, ',', '.' );
?>
Succes ;)
Edit: Haakje :+
Hey leuk, 2 decimalen! Welnu...
product 1 - 4,95
product 2 - 4,95
totaal: 8,00
Helaas wordt het geheel niet op geteld!
Bedankt allemaal, ik heb zelf iets veranderd! Het werkt nu perfect.
Hartstikke bedankt in ieder geval
<?php
# Arraytje
$prijzen = array( (float) str_replace( ',', '.', "4,95" ), 1.00 );
# Optellen en formatteren
echo number_format( array_sum( $prijzen ), 2, ',', '.' );
?>
Dit is mijn testscriptje en dat werkt toch echt wel ...