
Analizar números localizados con la clase Number de Laravel
- Publicado el 18 junio, 2025
- Palabras: 92
¿Necesitas analizar números localizados en tu aplicación Laravel? La clase Number ahora incluye métodos de análisis que gestionan formatos numéricos específicos de la configuración regional mediante la extensión Intl de PHP.

Al trabajar con aplicaciones internacionales, es frecuente recibir datos numéricos en diversos formatos locales. Los nuevos métodos de análisis de Laravel aprovechan la clase NumberFormatter de PHP para interpretar correctamente las cadenas numéricas localizadas, lo que facilita el manejo de datos numéricos de diferentes regiones. Veamos como funciona:
use Illuminate\Support\Number;
// Basic parsing
Number::parse($string);
Number::parseInt($string);
Number::parseFloat($string);
// With specific locale
Number::parseFloat(string: $string, locale: 'es');
// With custom type
Number::parse(
string: $string,
type: NumberFormatter::TYPE_INT64,
locale: 'es',
);
#Ejemplo práctico
A continuación se explica cómo podría utilizar estos métodos en un sistema de comercio electrónico internacional:
class LocalizedDataProcessor
{
public function processOrderData(array $orderData, string $locale)
{
return [
'total' => Number::parseFloat($orderData['total'], locale: $locale),
'tax' => Number::parseFloat($orderData['tax'], locale: $locale),
'quantity' => Number::parseInt($orderData['quantity'], locale: $locale),
'weight' => Number::parse(
string: $orderData['weight'],
type: NumberFormatter::TYPE_DOUBLE,
locale: $locale
)
];
}
public function handleCsvImport(string $filePath, string $locale)
{
$data = [];
foreach ($this->readCsv($filePath) as $row) {
$data[] = [
'price' => Number::parseFloat($row['price'], locale: $locale),
'discount' => Number::parseFloat($row['discount'], locale: $locale),
'stock' => Number::parseInt($row['stock'], locale: $locale)
];
}
return $data;
}
}
// Usage examples
$processor = new LocalizedDataProcessor();
// German format: "1.234,56" becomes 1234.56
$germanData = $processor->processOrderData([
'total' => '1.234,56',
'tax' => '234,56',
'quantity' => '10'
], 'de');
// French format: "1 234,56" becomes 1234.56
$frenchData = $processor->processOrderData([
'total' => '1 234,56',
'tax' => '234,56',
'quantity' => '10'
], 'fr');
Estos métodos de análisis manejan automáticamente la complejidad de diferentes formatos de números, lo que hace que sus aplicaciones internacionales sean más sólidas y fáciles de usar.

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión