flutuante r = 5,0f ou duplo r = 5,0 O valor 5,0 é um número representado como uma fração decimal (tem um inteiro e uma parte fracionária). Na ciência da computação, esses números são chamados de reais
Número real é um número que possui uma parte inteira e uma parte fracionária. As partes inteiras e fracionárias são separadas umas das outras por um ponto, não por uma vírgula como na matemática.
Mesmo que a parte fracionária do número seja zero, como na variável \(r\) no exemplo, o tradutor ainda criará uma variável real na memória. O ponto, por assim dizer, é um sinal para o tradutor de que é necessário criar uma variável real. 

Números muito grandes e muito pequenos  são escritos usando "ponto flutuante" (no chamado formato científico).  
No formato científico, um número é representado como mantissa(parte significativa do número) e expoente. Quando notados, a mantissa e o expoente são separados um do outro pela letra e (denotando 10 até certo ponto). 
Por exemplo, você pode armazenar o valor da carga de um elétron ( \(1.60217662 \times 10^{-19}\) C) em um variável, escrevendo da seguinte forma float El = 1.60217662e-19f //para uma ordem positiva, o sinal + pode ser omitido ou duploEl= 1.60217662e-19 Quase todos os números reais não podem ser armazenados na memória do computador com precisão perfeita, pois um número limitado de bits é alocado para seu armazenamento. Portanto, ao calcular com números reais, os erros associados à imprecisão da representação se acumulam. Além disso, quanto menos espaço alocado, maior será esse erro. Para diminuir o erro em Java, é utilizado o tipo double, que armazena um número real com dupla precisão na memória (ocupa oito bytes de memória, enquanto o digite \(float \)- 4 bytes)

Entre

Você pode inserir várias variáveis ​​reais do fluxo de entrada e escrevê-las em variáveis ​​da maneira padrão: duplo x = in.nextDouble(); float y = in.nextFloat(); O primeiro número vai para a variável \(x\), o segundo vai para a variável \(y\)

Saída

Java tem várias maneiras de exibir números reais.

1)  System.out.printf para saída de console simples
Por padrão, ao usar printf, os números reais são impressos com uma precisão de até 6 casas decimais. Mas há casos que precisam ser gerados com uma precisão diferente. Nesse caso, você deve especificar quantas familiaridades alocar após o ponto decimal. duplo a=0,5; System.out.printf("%f",a); // na tela 0.500000 System.out.printf("%.2f",a); // na tela 0.5 System.out.printf("%10.2f",a); // você pode definir o número total de posições alocadas para a saída do número System.out.printf("%.2e",a); // exibe o número em formato científico com precisão de 2 dígitos 2) DecmialFormat para obter uma string de um número usando um determinado padrão
A classe DecmialFormat permite controlar a saída de zeros iniciais e finais, prefixos e sufixos, separadores de milhares e separadores de dez mil, mas isso torna o código um pouco mais complexo. duplo a = 123,45; DecimalFormat df = new DecimalFormat("#.###"); String formatada = df.format(a); System.out.println(formatado); //123.45
Entrada Modelo Saída Nota
123,45 #.# 123,5 Exibido com uma casa decimal com arredondamento
123,45 #.### 123,45 Exibe o número inteiro sem zeros à esquerda
123,45 #.0 123,5 Exibido com uma casa decimal com arredondamento
123,45 #.000 123.450 Exibido até o terceiro caractere com um zero insignificante no final

Ao trabalhar com números reais, você pode usar a já conhecida classe Math, que contém um grande número de funções integradas. 
Ao resolver problemas, muitas vezes é necessário arredondar números reais para os valores inteiros mais próximos. Existem duas funções para isso.

LEMBRE-SE
1
com conversão de tipo explícita ( float x=1.5f; int y = int (x) )  -  a parte fracionária de um número real é cortada (y = 1) 
2 Math.floor(x) -  retorna o maior inteiro menor ou igual a \(x\) (arredondado para baixo)
3 Math.ceil(x) -  retorna o menor inteiro maior ou igual a \(x\) (arredondado para cima)

Aqui estão as funções mais úteis contidas no módulo cmath.
Função Descrição
Arredondamento
round(x) Arredonda um número para o inteiro mais próximo. Se a parte fracionária do número for 0,5, o número será arredondado para o número inteiro mais próximo. 
piso(x) Arredonda um número para baixo ("piso"), portanto piso(1.5) == 1piso(-1.5) ==  ; -2
ceil(x) Arredonda um número para cima ("ceiling"), enquanto ceil(1.5) == 2ceil(-1.5) ==  ; -1
abs(x) Módulo (valor absoluto).
Raízes, logaritmos
sqrt(x) Raiz quadrada. Uso: y = sqrt(x)
pow(x, y) Eleva x à potência de y. \(x^y\)
log(x) Logaritmo natural. 
exp(x) A base dos logaritmos naturais e = 2,71828...
Trigonometria
sin(x) Seno de um ângulo especificado em radianos
cos(x) Cosseno de um ângulo especificado em radianos
tan(x) A tangente de um ângulo especificado em radianos
asin(x) Arcsine, retorna o valor em radianos
acos(x) Arco cosseno, retorna o valor em radianos
atan(x) Arcotangente, retorna valor em radianos
atan2(y, x) Ângulo polar (em radianos) do ponto (x, y).

Exemplo de uso:
Elevando 2 a uma potência, porque pow retorna um double como resposta, então uma conversão para int é necessária.
public classe Principal {
    público estático void principal(String[] args) < spanstyle="color:#666666">{
       int a = 2;
       int b = (< span style="color:#b00040">int)Matemática.pow(a,2);
    }
}