2010-06-22 12 views
7

¿Es posible redondear un decimales hasta el 0,5 cercana con PHP como esto:redondas decimales PHP

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

he intentado con:

$rnd= round($number,2); 

pero me da decimales como el de la columna "número" arriba.

+0

Espera, ¿qué columna es la entrada y cuál es la salida? –

+0

Suponiendo 1.73 -> 2? –

+1

Su resultado está redondeando a la centésima más cercana como usted indicó. Pero no quisiste decir lo que dijiste. – plor

Respuesta

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

¿Cuál es el $ f? Y no necesita la precisión si es 0. – plor

+0

función round_to_nearest_half ($ original) {return (round ($ original * 2)/2);} ¡Sería más como eso! – RobertPitt

+0

@plor Sí, cambié de opinión sobre el nombre de la variable a mitad de camino. Y sí, tienes razón, no necesitas el segundo argumento, simplemente escogí la sintaxis que usó el OP. – Artefacto

-2

Usted no quieren escribir cualquier función para esta función php ronda ya tienen la opción, en el modo de un tercer argumento de la función de redondeo. para obtener más referencia PHP Round Function

+2

No, no tiene. El tercer argumento en la función round() determina cómo esta función debe redondear a la mitad. 'redondo (1.5, 0, PHP_ROUND_HALF_UP); // 2' 'redondo (1.5, 0, PHP_ROUND_HALF_DOWN); // 1' 'redondo (1.5, 0, PHP_ROUND_HALF_EVEN); // 2' 'redondo (1.5, 0, PHP_ROUND_HALF_ODD); // 1' 'redondo (1.55, 1, PHP_ROUND_HALF_UP); // 1.6' 'redondo (1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5' 'redondo (1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6' 'redondo (1.55, 1, PHP_ROUND_HALF_ODD); // 1.5' –