2010-06-22 3 views
7

Est-il possible d'arrondir une décimales au 0,5 le plus proche avec PHP comme ceci:PHP décimaux rondes

number | round 
---------------- 
1.29 | 1.50 
2.03 | 2.00 
1.43 | 1.50 
1.13 | 1.00 
11.38 | 11.50 

J'ai essayé avec:

$rnd= round($number,2); 

mais je reçois des décimales comme celle du colonne "numéro" ci-dessus.

+0

Attendez, quelle colonne est l'entrée et quelle est la sortie? –

+0

En supposant que 1,73 -> 2? –

+1

Votre résultat arrondit au centième le plus proche comme indiqué. Mais tu ne voulais pas dire ce que tu as dit. – plor

Répondre

16
function round_to_nearest_half($number) { 
    return round($number * 2)/2; 
} 
+0

Qu'est ce que le $ f? Et vous n'avez pas besoin de la précision si elle est 0. – plor

+0

function round_to_nearest_half ($ original) {return (round ($ original * 2)/2);} Serait plus comme ça! – RobertPitt

+0

@plor ouais, j'ai changé d'avis sur le nom de la variable à mi-chemin. Et oui, vous avez raison, vous n'avez pas besoin du second argument, je viens de choisir la syntaxe utilisée par l'OP. – Artefacto

-2

Vous ne veulent pas écrire une fonction pour cette php fonction round ont déjà l'option, en mode est un troisième argument de la fonction ronde. pour plus de référence PHP Round Function

+2

Non, il n'a pas. Le troisième argument de la fonction round() détermine comment cette fonction doit arrondir les moitiés. 'round (1.5, 0, PHP_ROUND_HALF_UP); // 2' 'round (1.5, 0, PHP_ROUND_HALF_DOWN); // 1' 'round (1.5, 0, PHP_ROUND_HALF_EVEN); // 2' 'round (1.5, 0, PHP_ROUND_HALF_ODD); // 1' 'round (1.55, 1, PHP_ROUND_HALF_UP); // 1.6' 'round (1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5' 'rond (1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6' 'round (1.55, 1, PHP_ROUND_HALF_ODD); // 1.5' –

Questions connexes