Vous verrez certaines de mes astuces en PHP avec le tag Mephisto. Cela ne signale pas quelque chose de diabolique, c'est le nom de code que j'ai donné au framework que j'essaye de développer.
Ce framework a pour but d'avoir accès simplement et facilement à des petits utilitaires pour améliorer les traitements génériques au sein d'un site web, comme par exemple la création d'un formulaire, la gestion des fichiers de médias, ...
Si vous désirez contribuer avec vos astuces et fonctions utiles, n'hésitez pas.
La petite classe qui suit permet de pallier ce manque:
(Source php)
<?php
/**
* Ensemble de fonctionnalités utiles pour traiter les nombres
*
* @author "CrazyCat"
* @since 2009-02-06
* @package Mephisto
*/
abstract class Math {
/**
* Arrondit à la précision supérieure
* @param float $value Valeur à arrondir
* @param float $precision Précision (défaut: 1)
* @return float
*/
public function ceil($value,$precision=1) {
$precision = abs(intval($precision));
if (($precision == 0) || ($precision == 1)) {
$value = ceil($value);
} else {
$value = ceil($value/$precision)*$precision;
}
return $value;
}
/**
* Arrondit à la précision inférieure
* @param float $value Valeur à arrondir
* @param float $precision Précision (défaut: 1)
* @return float
*/
public function floor($value,$precision=1) {
$precision = abs(intval($precision));
if (($precision == 0) || ($precision == 1)) {
$value = floor($value);
} else {
$value = floor($value/$precision)*$precision;
}
return $value;
}
}
?>
Avec ceci, vous pouvez donc avoir un pas sur ces fonctions.
Utilisation
Math::ceil()
<?php
Math::ceil(14.67, 0.5); // 15
echo Math::ceil(14.27, 0.5); // 14.5
echo Math::ceil(14.01, 0.25); // 14.25
?>
Math:floor()
<?php
echo Math::ceil(14.67, 0.5); // 14.5
echo Math::ceil(14.27, 0.5); // 14
echo Math::ceil(14.27, 0.25); // 14.25
?>
Modification du billet: Voici la version JavaScript