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);