Una biblioteca de formato para C++ rápida y segura en cuanto a tipos, alternativa a C stdio e iostreams, que implementa std::format de C++20.
fastfloat/fast_float
Biblioteca C++ de solo cabeceras para analizar rápidamente y con exactitud valores float, double y enteros a partir de cadenas; implementación de from_chars compatible como reemplazo directo.
- Estrellas
- 2,134
- Forks
- 200
- Issues abiertos
- 29
- Último commit
- hace 5 días
¿Qué es?
fast_float es una biblioteca C++ de solo cabeceras que implementa las funciones from_chars del estilo de C++17 para tipos float, double y enteros. Convierte cadenas decimales ASCII, como "1.3e10", en números binarios con redondeo IEEE exacto, incluido el redondeo al par. La implementación no lanza excepciones ni reserva memoria.
Además de la interfaz estándar, la biblioteca ofrece opciones para usar un separador decimal personalizado, números al estilo de Fortran y gramáticas estrictas de JSON o JavaScript. También acepta entradas UTF-16 y UTF-32, admite tipos float de ancho fijo y puede usarse en tiempo de compilación con C++20.
El proyecto está dirigido a C++11 y puede usarse con Visual Studio, macOS, Linux y FreeBSD en sistemas de 32 y 64 bits, tanto big-endian como little-endian. Se puede incorporar mediante CMake, CPM, Conan o Homebrew, o como un único archivo de cabecera.
Funciones clave
- 01Analiza valores float y double con resultados exactos y redondeo al más cercano con desempate al par.
- 02Analiza tipos enteros con y sin signo en bases como 2, 10 y 16.
- 03Informa de los errores mediante std::errc, sin lanzar excepciones ni reservar memoria.
- 04Ofrece gramáticas de JSON, JavaScript y Fortran, además de separadores decimales personalizados.
- 05Acepta entradas ASCII, UTF-8, UTF-16 y UTF-32.
- 06Se puede usar como biblioteca de solo cabeceras o como un único archivo de cabecera.
Casos de uso
- Analizar grandes volúmenes de texto numérico en motores de bases de datos o pipelines de datos.
- Leer números en analizadores de JSON o JavaScript que necesiten comprobar gramáticas estrictas.
- Incorporar conversiones numéricas rápidas a proyectos C++ que usen C++11 o posterior.
- Analizar números de archivos CSV o de registros cuando la velocidad sea importante.
Inicio rápido
- 1
Copia el directorio fast_float en la ruta include de tu proyecto e incluye el encabezado
Antes de usarlo
- Solo se admite la entrada decimal; las cadenas hexadecimales no se analizan.
- El tipo long double no es compatible.
- Se presupone que el modo de redondeo de punto flotante está configurado como redondeo al más cercano.
Temas
Preguntas frecuentes
- ¿Qué es fast_float?
- Biblioteca C++ de solo cabeceras para analizar rápidamente y con exactitud valores float, double y enteros a partir de cadenas; implementación de from_chars compatible como reemplazo directo. fast_float es una biblioteca C++ de solo cabeceras que implementa las funciones from_chars del estilo de C++17 para tipos float, double y enteros. Convierte cadenas decimales ASCII, como "1.3e10", en números binarios con redondeo IEEE exacto, incluido el redondeo al par. La implementación no lanza excepciones ni reserva memoria.
- ¿fast_float es gratuito? ¿Qué licencia tiene?
- fast_float es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿fast_float sigue mantenido?
- Mantenimiento activo. El último commit de fast_float fue el 19 oct 2026.
- ¿Para qué puedo usar fast_float?
- Analizar grandes volúmenes de texto numérico en motores de bases de datos o pipelines de datos. Leer números en analizadores de JSON o JavaScript que necesiten comprobar gramáticas estrictas. Incorporar conversiones numéricas rápidas a proyectos C++ que usen C++11 o posterior. Analizar números de archivos CSV o de registros cuando la velocidad sea importante.
- ¿Cómo se instala fast_float?
- Copia el directorio fast_float en la ruta include de tu proyecto e incluye el encabezado
- ¿Dónde consigo fast_float?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/fastfloat/fast_float
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de C++11 en un solo archivo de cabecera para crear servidores y clientes HTTP/HTTPS con E/S de sockets bloqueante.
Microframework de C++ rápido y al estilo de Flask para crear servicios web HTTP y WebSocket; solo requiere archivos de cabecera y es fácil de usar.
Biblioteca de C++ header-only con mapas hash, conjuntos y contenedores B-tree rápidos y eficientes en memoria, como alternativa a los contenedores estándar ordenados y no ordenados.
Colas lock-free de búfer circular, solo de cabeceras y compatibles con C++14, para pasar mensajes entre hilos con una latencia mínima entre inserción y extracción.
Luanti (antes Minetest) es un motor de juegos voxel de código abierto y gratuito para crear y jugar, con soporte para mods en Lua.