Classes para manipular valores numéricos reais

Java oferece duas classes com facilidades para manipular valores numéricos reais, Float e Double.

Para cada uma das classes, são definidas constantes que representam os mínimo e máximo valores representáveis (por exemplo, Float.MIN_VALUE e Double.MAX_VALUE), assim como as representações internas para os valores infinitos negativo e positivo (Float.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY) e a representação para Not A Number (Double.NaN), um valor especial definido no padrão de representação de valores inteiros em computadores.

Há funcionalidades definidas como métodos da classe, como para testar se o valor de uma variável corresponde a uma das situações especiais de representação (por exemplo, isNaN( )) e para conversão de representação, como parseDouble(). Há também funcionalidades para converter entre as representações binárias (internas) de um número real e seu valor, como floatToIntBits() e longBitsToDouble().

Outra funcionalidade importante destas classes é a possibilidade de encapsular uma variável de cada um desses tipos como sendo um objeto da classe correspondente. Por exemplo, um objeto Double pode ser construído tendo como argumento para o construtor a variável do tipo double, que pode ser então utilizada onde objetos são esperados. Para recuperar a variável double do objeto Double, o método doubleValue() é aplicado.