Mi pregunta es: ¿hay alguna forma de modificar un tipo de dato (float o entero) para que tenga una precisión arbitrariamente grande (por ejemplo solo limitada por la capacidad física de la memoria del ordenador, o algo así). Dedicarme a escribir "long" delante de cada tipo no parece funcionar (o al menos el operador sizeof devuelve la misma cantidad de bytes).
Asked
Active
Viewed 157 times
1
-
5No la hay. La precisión de cada uno de los tipos fundamentales de [tag:c] viene dada por estándares ajenos al lenguaje. Si quieres precisiones arbitrarias [debes programarlas tú](https://es.stackoverflow.com/questions/69855/elegir-cuantos-decimales-guardo-en-una-variable/70625#70625) o usar librerías externas. – PaperBirdMaster Feb 07 '18 at 11:31
1 Answers
5
Los números cuya precisión o cuyo rango esté sólo limitado por la capacidad física de la memoria del ordenador son conocidos como bignum, bigint o números de precisión arbitraria.
Hay pocos lenguajes que soporten precisión arbitraria de manera nativa, y C no es uno de ellos. Si necesitas este tipo de utilidad deberás confiar en librerías de terceros, como por ejemplo: The GNU Multiple Precision Arithmetic Library.
PaperBirdMaster
- 44,474
- 6
- 44
- 82