with solo round redondear number_format mostrar money_format money floatval decimals decimales php split

solo - Dividir un número por punto decimal en php



php round 2 decimals with zero (8)

Intenta explotar

list($int,$dec)=explode(''.'', $num);

ya que realmente no necesitas usar una división basada en expresiones regulares. Split no funcionaba para ti como ''.'' el personaje necesitaría escapar para proporcionar una coincidencia literal.

¿Cómo puedo dividir un número por el punto decimal en php?

Tengo $ num = 15/4; que convierte $ num en 3.75. Me gustaría separar las 3 y las 75 partes, así que $ int = 3 y $ dec = 75. Mi código que no funciona es:

$num = 15/4; // or $num = 3.75; list($int, $dec) = split(''.'', $num);

pero eso resulta en empty $ int y $ dec.

Gracias por adelantado.


Si explode la representación decimal del número, pierdes precisión. Si no te importa, que así sea (eso está bien para la representación textual). ¡Toma en cuenta la configuración regional! Nosotros los belgas usamos una coma (al menos las que no son de programación :).

Si le importa (para cálculos, por ejemplo), puede usar la función floor :

$num = 15/4 $intpart = floor( $num ) // results in 3 $fraction = $num - $intpart // results in 0.75

Nota: esto es para números positivos. Para los números negativos, puede invertir el signo, usar el enfoque positivo y reinvertir el signo de la parte int.


$num = 15/4; // or $num = 3.75; list($int, $dec) = explode(''.'', $num);


$num = 15/4; substr(strrchr($num, "."), 1)


$num = 3.75; $fraction = $num - (int) $num;


En caso de que no quiera perder precisión, puede usar estos:

$number = 10.10; $number = number_format($number, 2, ".", ","); sscanf($number, ''%d.%d'', $whole, $fraction); // you will get $whole = 10, $fraction = 10


Esto funciona para números positivos y negativos:

$num = 5.7; $whole = (int) $num; // 5 $frac = $num - (int) $num; // .7


$int = $num > 0 ? floor($num) : ceil($num); $dec = $num - $int;

Si quiere que $dec sea ​​positivo cuando $num es negativo (como las otras respuestas), puede hacer:

$dec = abs($num - $int);