1

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).

gudise
  • 353
  • 4
  • 12
  • 5
    No 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 Answers1

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