Actualmente estoy tratando de encontrar la manera de trabajar con números de precisión arbitraria en PHP. Así que supongo que mi primera pregunta sería qué es exactamente matemática de precisión arbitraria. Intenté buscar en Google una buena definición, pero por alguna razón nadie puede expresarlo en palabras suficientemente simples.Matemáticas de Precisión Arbitraria en PHP
En segundo lugar, ¿cuáles son las diferencias entre las bibliotecas BCMath y GMP en PHP? Escuché afirmaciones de que la API de GMP es "más reciente", pero idk. ¿Es uno mejor?
Y mi pregunta final sería qué tipo de números toma BCMath/GMP. Obviamente, toma números enteros normales en forma de cadena (por ejemplo, "5.34"), pero he visto implementaciones donde las funciones de BCMath se han utilizado directamente con cadenas de octetos que representan enteros regulares (por ejemplo, "\ x12 \ x23 \ x45 \ x67"), que He oído que me llaman "bigint", pero de nuevo, Google no me ha dado nada.
En teoría ambos permiten números de cualquier longitud para ser usados, siempre y cuando estén alimentados a la biblioteca como cadenas. Todo se reduce a lo que tenga la mejor API para sus propósitos. bc funciona puramente con cadenas, mientras que gmp puede aceptar cadenas pero también usa sus propias representaciones internas. –
Nota: para trabajar con aritmética de precisión arbitraria, puede usar una biblioteca como [brick/math] (https://github.com/brick/math) que utiliza GMP, BCMath o incluso PHP sin formato de forma automática. dependiendo de la disponibilidad de cada extensión De esta forma, no tiene que elegir entre GMP y BCMath, y tiene una API de OO agradable para jugar. – Benjamin