Archief - PHP: Integer afkappen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Avalanched

Legacy Member
ik wil een integer afkappen op 2 cijfers na de komma

ik docht eerst printf("%6.2f", $number) maar

printf("%6.2f", 11562.568668) geeft 11562.578

iemand een idee op dat makkelijk af te kappen op 2 punten (niets afronden !)

Fr3aK

Legacy Member
Wat je daar hebt staan is geen integer maar een float/double ;)

Je zal die double als string moeten behandelen:
PHP:
$val = 11562.568668;
$parts = explode(".", $val);
$parts[1] = substr($parts[1], 0, 2);
$newVal = implode(".", $parts);
of als je de waarde terug wil gebruiken als double typecast je hem naar een double:
PHP:
$newVal = (double) implode(".", $parts);

Messias.

Legacy Member
Integer afkappen na de komma? Integers zijn per definitie gehele getallen. Je doelt waarschijnlijk op floating point getallen...

welp

Legacy Member
Wat dacht je van dit

$newVal = (floor($val*100))/100;

Of ben ik verkeerd?

dJeez

Legacy Member
Welke versie van PHP mag je dan wel gebruiken? Want dat zou een bug zijn. Ik heb het trouwens net getest op PHP 5.2.0 en daar doet dat probleem zich niet voor.

Of was het een typo en bedoelde je dat de output 11562.57 was? Want dan klopt het wel, printf gaat de waarde steeds afronden. Wil je dat niet kan je idd best floor($number*100)/100 gebruiken om dat te vermijden.

Avalanched

Legacy Member
kheb mij idd vergist van type twas nen double ipv integer

ma het wiskundige "formuleke" is idd het gemakkelijkste. en twas het afronden dat ik niet wou :)

Fr3aK

Legacy Member
Hmm, wiskunde, das te lang geleden :)

De oplossing van welp is inderdaad veel beter.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan