Como obter a parte fracionária de um double?

Olá galera!

Tenho uma dúvida… tenho um “double” com um valor quebrado! Gostaria de obter somente a parte fracionária deste.
Exemplo:
11688.015008
gostaria de guardar somente 0.015008!

Como faço?

Obrigado.

		double d = 12.121210;
		System.out.println(d);
		d -= ((int)d);
		System.out.printf("%.5f", d);

Ou também,

double d = 11688.015008;
Double doubleValue = d; // Para Java 5
double temp = doubleValue.intValue();
double fracao = doubleValue - temp;

Mais rigorosamente, use Math.floor() se o número for positivo e Math.ceil() se o número for negativo, em vez de (int). É que o número double pode ser bem maior que um int, provocando problemas. O correto seria:

public static double frac (double x) {
    if (x >= 0.0)
        return x - Math.floor(x);
    else
        return x - Math.ceil(x); 
}

rodrigo.fai

Atente para a perda de precisão que pode ocorrer com as operações com double. Usando o seu próprio valor como exemplo ( 11688.015008 ), ele será convertido para 0.01500800000030722.

Não é perda de precisão e sim visualizar um dado com casas a mais que não deveriam estar sendo vistas.

Por exemplo,
11688.015008 é armazenado internamente como se fosse o valor 11688.015008000000307220034301280975341796875 (é o valor maís próximo que o computador consegue armazenar internamente em binário, com a quantidade de bits que existem em um double).

Se você subtrair 11688 desse valor, vai obter 0.015008000000307220034301280975341796875, que o Java imprime como 0.01500800000030722.

valew galera!!!

Consegui resolver meu problema…

Obrigado.

11688.015008 armazenado internamente como se fosse o valor 11688.01500800000030722003430128097534179687 soa como uma perda de precisão.

http://en.wikipedia.org/wiki/IEEE_floating-point_standard