Utilização do operador modulo no java

Gostaria de saber se posso usar o operador modulo tanto com inteiros quanto com ponto flutuante.
Pois outro dia fiz um programinha básico: segue abaixo

public class TesteModulo
{
public static void main(String[] args)
{
float a=6.6f;
float b = 2f;
System.out.println(a%b);
}

}

Eu sei que o resto é 0, porém ele não retorna zero - cheguei a colocar b como int = 2 (só para desencargo) pois sei que se b tivesse uma parte fracionário, apenas seria considerada a parte inteira.
Gostaria de saber o porque, se por causa da mistura de tipos.

O resto é 0.6, não zero.

Esse operador só serve para números inteiros. Se precisar usa-lo assim, terá que converter os tipos primeiro. Aí vc faz arredondamentos, se achar necessário.

Caso contrário, faça simplesmente

public class TesteModulo { public static void main(String[] args) { float a=6.6f; float b = 2f; int ia = (int) a; int ib = (int) b; System.out.println(ia % ib); } }

PS: Quando postar códigos, deixe formatado, como eu fiz ali. Para isso, vc usa as tags code. Se vc não sabe fazer isso ainda, leia esse tópico:
http://www.guj.com.br/posts/list/50115.java

Além disso, vou mover este tópico para “Java Básico”.

Obrigada por esclarecer minha dúvida e, sim irei ler o tópico sobre como formatar.
Porém eu só queria fazer uma retificação…6.6 / 2 ou 6.6 / 2.0, terá como “zero” resultado, estou falando de matemática, porém o java (caso eu use o modulo com operandos não inteiros) ele só considera a parte inteira do quociente.

Sim, porque a operação de resto só tem sentido com números inteiros. Se você levar em conta a parte fracionária, todo número terá resto zero.

5.0 / 2 = 2.5 (resto 0)
9.0 / 4 = 2.25 (resto 0)

E por aí vai…

E é para resto que serve o operador %

Agora, se você quer a operação de módulo, |x|, então deve usar Math.abs()

[code]float x = -12.7;
float y = 15;

System.out.println(Math.abs(x));
System.out.println(Math.abs(y)); [/code]