Java Language El flotador primitivo


Ejemplo

Un float es un número de punto flotante IEEE 754 de 32 bits de precisión simple. Por defecto, los decimales se interpretan como dobles. Para crear un float , simplemente agregue una f al literal decimal.

double doubleExample = 0.5;      // without 'f' after digits = double
float floatExample = 0.5f;       // with 'f' after digits    = float

float myFloat = 92.7f;           // this is a float...
float positiveFloat = 89.3f;     // it can be positive,
float negativeFloat = -89.3f;    // or negative
float integerFloat = 43.0f;      // it can be a whole number (not an int)
float underZeroFloat = 0.0549f;  // it can be a fractional value less than 0

Los flotadores manejan las cinco operaciones aritméticas comunes: suma, resta, multiplicación, división y módulo.

Nota: Lo siguiente puede variar ligeramente como resultado de errores de punto flotante. Algunos resultados se han redondeado con fines de claridad y legibilidad (es decir, el resultado impreso del ejemplo de adición fue en realidad 34.600002).

// addition
float result = 37.2f + -2.6f;  // result: 34.6

// subtraction
float result = 45.1f - 10.3f;    // result: 34.8

// multiplication
float result = 26.3f * 1.7f;   // result: 44.71

// division
float result = 37.1f / 4.8f;   // result: 7.729166

// modulus
float result = 37.1f % 4.8f;   // result: 3.4999971

Debido a la forma en que se almacenan los números de punto flotante (es decir, en forma binaria), muchos números no tienen una representación exacta.

float notExact = 3.1415926f;
System.out.println(notExact); // 3.1415925

Si bien el uso de float está bien para la mayoría de las aplicaciones, no se debe usar float ni double para almacenar representaciones exactas de números decimales (como cantidades monetarias), o números donde se requiera mayor precisión. En su lugar, se debe utilizar la clase BigDecimal .

El valor predeterminado de un float es 0.0f .

float defaultFloat;    // defaultFloat == 0.0f

Un float es preciso para aproximadamente un error de 1 en 10 millones.

Nota: Float.POSITIVE_INFINITY , Float.NEGATIVE_INFINITY , Float.NaN son valores float . NaN significa resultados de operaciones que no se pueden determinar, como dividir 2 valores infinitos. Además, 0f y -0f son diferentes, pero == produce verdadero:

float f1 = 0f;
float f2 = -0f;
System.out.println(f1 == f2); // true
System.out.println(1f / f1); // Infinity
System.out.println(1f / f2); // -Infinity
System.out.println(Float.POSITIVE_INFINITY / Float.POSITIVE_INFINITY); // NaN