{"id":228,"date":"2011-06-15T15:48:59","date_gmt":"2011-06-15T15:48:59","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=228"},"modified":"2012-02-29T21:26:12","modified_gmt":"2012-02-29T21:26:12","slug":"formatear-numeros-con-php","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/","title":{"rendered":"Formatear n\u00fameros con PHP"},"content":{"rendered":"<p>Cuando mostramos un n\u00famero en una p\u00e1gina web podemos querer que tenga un formato espec\u00edfico. Por ejemplo, que tenga s\u00f3lo dos decimales, o que utilice comas -o puntos- para separar decimales, as\u00ed como las unidades de millar. T\u00edpicos formatos de n\u00famero podr\u00edan ser:<\/p>\n<p>1.000.505,56<br \/>\n5003.60<br \/>\n5,000.00<br \/>\n\u2026<\/p>\n<p>Presentar los n\u00fameros con uno u otro formato es sencillo, ya que en PHP existe una funci\u00f3n espec\u00edfica para dar formato a los n\u00fameros, que dependiendo de los par\u00e1metros recibidos los formatear\u00e1 de una u otra manera. En este art\u00edculo vamos a conocer dicha funci\u00f3n, as\u00ed como sus posibilidades de configuraci\u00f3n y ver varios ejemplos.<\/p>\n<p><strong>Funci\u00f3n number_format()<\/strong><\/p>\n<p>El formateo de n\u00fameros lo llevaremos a cabo con la funci\u00f3n de PHP number_format(). Esta funci\u00f3n recibe uno, dos o cuatro par\u00e1metros. Es decir, tenemos estas restricciones:<\/p>\n<ul>\n<li>Hay un \u00fanico par\u00e1metro obligado (el n\u00famero que queremos formatear).<\/li>\n<li>El segundo par\u00e1metro es opcional, tal como el tercero y el cuarto<\/li>\n<li>Pero si especificamos el tercer par\u00e1metro, estamos obligados a especificar tambi\u00e9n el cuarto.<\/li>\n<\/ul>\n<p>Veamos con detalle los par\u00e1metros de la funci\u00f3n de formateo de n\u00fameros de PHP, con diversos ejemplos.<\/p>\n<p><strong>Par\u00e1metro 1, el n\u00famero:<\/strong><br \/>\nEl primer par\u00e1metro es el n\u00famero a formatear. Tal como dijimos, aunque resulta obvio, es un par\u00e1metro siempre necesario.<\/p>\n<pre id=\"line\">$numero = 15200.67;\r\nnumber_format($numero);\r\n\/\/devuelve 15,201<\/pre>\n<p>En este caso, el formateo del n\u00famero nos dar\u00e1 el n\u00famero sin decimales y con una coma como separador de miles. Este formato es el que se utiliza en ingl\u00e9s (las personas de habla inglesa separan con comas los millares al escribir los n\u00fameros), que seguramente no nos sirva a los desarrolladores que trabajamos en espa\u00f1ol.<\/p>\n<p>Cabe fijarse que la funci\u00f3n number_format() ha realizado tambi\u00e9n un redondeo de los decimales que no est\u00e1 mostrando. Este redondeo lo vamos a ver bien en este ejemplo:<\/p>\n<pre id=\"line\">$numero = 999999999.99;\r\nnumber_format($numero);\r\n\/\/devuelve 1,000,000,000<\/pre>\n<p><strong>Par\u00e1metro 2, los decimales:<\/strong><br \/>\nCon el segundo par\u00e1metro, que es opcional, indicamos el n\u00famero de decimales que queremos que aparezcan en el n\u00famero formateado.<\/p>\n<pre id=\"line\">$numero = 15200.67;\r\nnumber_format($numero,2);\r\n\/\/devuelve 15,201.67<\/pre>\n<p>Como vemos, en este caso se han incorporado dos decimales al formato del n\u00famero. Utiliza comas para separar los miles y un punto para separar las unidades de millar. Como vemos, sigue utilizando la notaci\u00f3n inglesa para formatear n\u00fameros.<\/p>\n<p>Otro ejemplo, en el que podemos apreciar que siempre se hace un redondeo del n\u00famero, si los decimales a mostrar son menos que los que tiene el n\u00famero original.<\/p>\n<pre id=\"line\">$numero = 1885200.89;\r\nnumber_format($numero,1);\r\n\/\/devuelve 1,885,200.9<\/pre>\n<p><strong>Par\u00e1metros 3 y 4, separadores de decimales y de unidades de millar<\/strong><br \/>\nLos \u00faltimos par\u00e1metros, que debemos utilizar siempre juntos, sirven para especificar los separadores que queremos utilizar para los decimales y las unidades de millar. Si queremos formatear los n\u00fameros con la notaci\u00f3n espa\u00f1ola tendr\u00edamos que utilizar forzosamente estos par\u00e1metros.<\/p>\n<p>Por ejemplo, as\u00ed har\u00edamos para formatear los n\u00fameros en espa\u00f1ol:<\/p>\n<ul>\n<li>Separar los decimales con coma<\/li>\n<li>Separar las unidades de millar con un punto.<\/li>\n<\/ul>\n<pre id=\"line\">$numero = 1002002.365;\r\nnumber_format($numero, 2, \",\", \".\");\r\n\/\/devuelve 1.002.002,37<\/pre>\n<p>Si, por ejemplo, no separar los millares, simplemente pasamos como separador de unidades de millar (cuarto par\u00e1metro) la cadena vac\u00eda:<\/p>\n<pre id=\"line\">$numero = 9540.2;\r\nnumber_format($numero, 2, \",\", \"\");\r\n\/\/devuelve 9540,20<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Cuando mostramos un n\u00famero en una p\u00e1gina web podemos querer que tenga un formato espec\u00edfico. Por ejemplo, que tenga s\u00f3lo dos decimales, o que utilice comas -o puntos- para separar decimales, as\u00ed como las unidades de millar. T\u00edpicos formatos de n\u00famero podr\u00edan ser: 1.000.505,56 5003.60 5,000.00 \u2026 Presentar los n\u00fameros con uno u otro formato [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[114],"class_list":["post-228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-numeros"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Formatear n\u00fameros con PHP - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Formatear n\u00fameros con PHP - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Cuando mostramos un n\u00famero en una p\u00e1gina web podemos querer que tenga un formato espec\u00edfico. Por ejemplo, que tenga s\u00f3lo dos decimales, o que utilice comas -o puntos- para separar decimales, as\u00ed como las unidades de millar. T\u00edpicos formatos de n\u00famero podr\u00edan ser: 1.000.505,56 5003.60 5,000.00 \u2026 Presentar los n\u00fameros con uno u otro formato [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2011-06-15T15:48:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-02-29T21:26:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\" \/>\n\t<meta property=\"og:image:width\" content=\"282\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/\",\"name\":\"Formatear n\u00fameros con PHP - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"datePublished\":\"2011-06-15T15:48:59+00:00\",\"dateModified\":\"2012-02-29T21:26:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"width\":282,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Formatear n\u00fameros con PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Formatear n\u00fameros con PHP - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Formatear n\u00fameros con PHP - Jose Aguilar Blog","og_description":"Cuando mostramos un n\u00famero en una p\u00e1gina web podemos querer que tenga un formato espec\u00edfico. Por ejemplo, que tenga s\u00f3lo dos decimales, o que utilice comas -o puntos- para separar decimales, as\u00ed como las unidades de millar. T\u00edpicos formatos de n\u00famero podr\u00edan ser: 1.000.505,56 5003.60 5,000.00 \u2026 Presentar los n\u00fameros con uno u otro formato [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2011-06-15T15:48:59+00:00","article_modified_time":"2012-02-29T21:26:12+00:00","og_image":[{"width":282,"height":300,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/","url":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/","name":"Formatear n\u00fameros con PHP - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","datePublished":"2011-06-15T15:48:59+00:00","dateModified":"2012-02-29T21:26:12+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","width":282,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/formatear-numeros-con-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Formatear n\u00fameros con PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6469"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}