¿Qué es un punto flotante?

(Intentando una respuesta muy simple, si no 100% precisa)

Cuando se considera la representación de punto flotante, es útil comparar con la representación de enteros y de punto fijo.

El entero es sencillo: 12345678 No hay punto decimal, por lo que no se puede almacenar ningún valor menor que “1”.

El punto fijo establece un número fijo de lugares después del punto decimal. Con representación de punto fijo “4.4”: 1234.5678 Hay cuatro dígitos antes del punto decimal y 4 dígitos después del punto decimal. Para almacenar el número “1.2”, en realidad debería almacenar “0001.2000”. Cualquier valor menor que “.0001” o mayor que “9999.9999” no se puede almacenar y se pierde.

El punto flotante permite que el punto decimal “flote”. Puedes tener el número 12.345678 o 12345.678 … puedes poner el punto decimal donde quieras. Imagine que tiene el mismo número entero “12345678” y un número adicional que controla dónde va el punto decimal. Entonces “12345678” y “2” son “123456.78” – dos puntos decimales, mientras que “12345678” y “3” son “12345.678”

FWIW: tanto las matemáticas de enteros como las de punto fijo usan los mismos recursos en una CPU. El punto flotante requiere un coprocesador y registros separados. Antes de que los coprocesadores de punto flotante o FPU fueran comunes, la mayoría del software utilizaba números enteros y de punto fijo. Incluso hasta hace unos años, muchas CPU ARM en dispositivos móviles no tenían FPU.

Un número real (es decir, un número que puede contener una parte fraccional). Los siguientes son números de coma flotante:

3.0

-111,5

½

3E-5

El último ejemplo es una abreviatura de computadora para notación científica. Significa 3 * 10-5 (o 10 a la quinta potencia negativa multiplicada por 3).

En esencia, las computadoras son máquinas enteras y son capaces de representar números reales solo mediante el uso de códigos complejos. El código más popular para representar números reales se llama IEEE Floating-Point Standard .

El término punto flotante se deriva del hecho de que no hay un número fijo de dígitos antes y después del punto decimal; es decir, el punto decimal puede flotar. También hay representaciones en las que se establece el número de dígitos antes y después del punto decimal, llamadas representaciones de punto fijo . En general, las representaciones de punto flotante son más lentas y menos precisas que las representaciones de punto fijo, pero pueden manejar un rango mayor de números.

Tenga en cuenta que la mayoría de los números de coma flotante que una computadora puede representar son solo aproximaciones. Uno de los desafíos en la programación con valores de punto flotante es garantizar que las aproximaciones conduzcan a resultados razonables. Si el programador no tiene cuidado, las pequeñas discrepancias en las aproximaciones pueden aumentar hasta el punto en que los resultados finales no tengan sentido.

Debido a que las matemáticas con números de punto flotante requieren una gran cantidad de potencia informática, muchos microprocesadores vienen con un chip, llamado unidad de punto flotante (FPU) ) , especializado para realizar aritmética de coma flotante. Las FPU también se denominan coprocesadores matemáticos y coprocesadores numéricos .

Fuente: ¿Qué es el número de coma flotante? Definición de Webopedia

Es porque C usa el estándar de coma flotante IEEE para almacenar valores flotantes. Podría ser bastante complicado trabajar con ellos, ya que los números no solo se convierten en binarios y se almacenan, sino que también se convierten en exponente y mantisa y luego se normalizan y después de todo esto se almacenan.
Incluso durante los cálculos, primero se calcula el resultado exacto y luego se redondea para ajustarse a la precisión deseada.

PD: La alternativa al punto flotante IEEE sería la representación de punto fijo que tiene el problema de tener que elegir entre rango y precisión de número.
PS 2: Actualmente estoy en el móvil, lo elaboraré más después.

El punto flotante usa algo similar a la notación científica para soportar una amplia gama de valores. Un entero con signo puede almacenar un número dentro de un rango de −2,147,483,648 a +2,147,483,647.

Un punto decimal decimal puede almacenar un número en un cierto rango (dependiendo de la implementación) con un cierto número de dígitos a la izquierda del punto decimal y a la derecha del punto decimal.

Un decimal en coma flotante, por otro lado, puede almacenar un cierto número de dígitos dentro de un cierto rango, pero con la ventaja adicional de la notación científica. Esto significa que puede haber un cierto número de dígitos significativos, pero su ubicación se determina multiplicando esos dígitos por 10 ^ x.

En informática, la aritmética de punto flotante es aritmética que utiliza la representación formulada de números reales como una aproximación para apoyar una compensación entre rango y precisión. Por esta razón, el cálculo de punto flotante a menudo se encuentra en sistemas que incluyen números reales muy pequeños y muy grandes, que requieren tiempos de procesamiento rápidos. En general, un número se representa aproximadamente a un número fijo de dígitos significativos (el significado) y se escala utilizando un exponente en alguna base fija; la base para la escala es normalmente dos, diez o dieciséis. Un número que se puede representar exactamente es de la siguiente forma:

[matemáticas] {\ displaystyle {\ text {significand}} \ times {\ text {base}} ^ {\ text {exponent}},} [/ math]

donde significand es un número entero (es decir, en Z ), base es un número entero mayor o igual a dos, y el exponente también es un número entero.

Wiki fuente