Como separar la parte entera de un número y sus decimales en PHP  

Al trabajar con Codeka MX tuve que hacer una adaptación al momento de imprimir el total de una factura con letra.

Ejemplo del uso de la función explode

En México se acostumbra poner la parte entera de la cantidad con letra, seguido de un xx/100 M.N. para la parde decimal.

Por ejemplo:

3,527.50 sería tres mil quinientos veintisiete pesos 50/100 M.N.

Para esto hay que separar la parte entera de la parte decimal.

Después de ver varios enfoques, el que más me gustó por su sencillez fue utilizando la función explode.

Siguiendo con el ejemplo, supongamos que la variable $total contiene el valor que quiero separar.

$total = 3527.50

$decimales = explode(".",$total);

la variable decimales es un arreglo, de manera que almacena en el indice 0 lo que encuentre antes del punto, y en el indice 1 lo que sigue de manera que:

$decimales[0]  contiene el valor de  3527

y

$decimales[1]  contiene el valor de  50

Y eso es todo, así de simple.

Archivado en: Linux y Software Libre, Facturación Web con Codeka MX, Lenguajes de programación, PHP | | February 5, 2010

   Compartir   Print Friendly and PDF

6 Comentarios »

Enlace Permanente | TrackBack

Gravatar Image

# 1 | Jorge
February 5, 2010 @ 6:39 pm    

Es igual a la función String.Split() de C# o Vb

Gravatar Image

# 2 | Gustavo Ávila
February 11, 2010 @ 11:40 am    

Que tipografía usas en tu terminal?

Gravatar Image

# 3 | linuxman
February 11, 2010 @ 11:43 am    

Creo que se llama Mónaco… :D

Gravatar Image

# 4 | Patricio
May 22, 2010 @ 11:45 am    

Hola

Primero que todo, felcitaciones por tu blog. me ha servido mucho.

Tengo una consulta, lo que pasa es que he estado usando el codekamx en mi pais Chile. pero quisira modificarlo para que no me aparesacan los decmales ya que aqui solo usamos numeros enteros.

Con lo que explicabas mas arriba, estuve tratando de modificar el archivo imprimir_factura.php pero me salia un error al vizualizar la factura.

Ademas puedo quitarle 50/100 M.N. ya que en Chile no usamos esto y solo quede como pesos ?

Estare muy agradecido.

Atte.

Patricio Fuentes

Gravatar Image

# 5 | linuxman
May 22, 2010 @ 12:38 pm    

Te vas a encontrar con casi el mismo problema que yo pero con la ventaja de que ya tengo algo de camino recorrido con codeka mx.

Verás, en todo el sistema encontrarás la función number_format de PHP. Para codeka mx modifique la función para que 2 decimales usando la coma como separador de miles y el punto como indicador de decimales (en España es al revés) supongo que tu puedes colocarle 0, en lugar del dos.

$total2= number_format($total,2,".",",");

quedando así :

$total2= number_format($total,0,".",",");

Ahora con respeco a la modificación del archivo imprimir_factura.php , alrededor de la línea 153 del archivo puedes modificarla a algo parecido a esto:

Modificando el archivo imprimir_factura.php de Codeka MX

$pdf->Cell(35,4,strtoupper($nw->toWords($decimales[0], "es") ." pesos"),0,0,'L',0);

Con eso dejaría de mostrar la leyenda M.N. xx/100.

Lo pruebas y me dices que tal ok?

Gravatar Image

# 6 | Rodax
March 21, 2011 @ 2:14 pm    

oye amigo excelente articulo!!!!!!!!!!, solo tengo una duda, como puedo hacer para que al momento de realizar la venta todo sea de contado y solo los que eliga se vayan a credito, ya que cuando vendo automaticamente se queda sin cobrar.

de antemano muchas gracias

RSS para los comentarios de este artículo.

Deja un comentario...

Los parráfos son automáticos, tu dirección de e-mail nunca será mostrada, los siguientes códigos en HTML están permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Este es un espacio abierto, puedes escribir lo que gustes respetando los siguientes puntos:

  • 1.- Lo que escribas esté relacionado con el post, si gustas contactarme puedes hacerlo aqui.
  • 2.- Todo es cuestionable, aunque ten en cuenta que existen formas de hacerlo, evita las agresiones.
  • 3.- Siempre hay tres verdades: tu verdad, mi verdad y la verdad, por lo que opiniones diferentes no necesariamente son equivocadas.
  • 4.- Es importante encontrar el modo correcto de expresar cualquier punto de vista, revisa tu lenguaje antes de poner tu comentario.
Este blog ya no esta aceptando comentarios, si quieres puedes hacerlo en Como separar la parte entera de un número y sus decimales en PHP



Anti-spam : Teclea el número que aparece del lado izquierdo.

Otros Artículos ...