divisão matemática

boas,

alguém poderia explicar porque quando divido 1/2 o resultado é 0 , na saída do seguinte progama:

//declaração de variáveis
float i;



void setup() {

//iniciar comunicação serie  
Serial.begin(9600);
 
}



void loop() {

i = (1/2);
 
Serial.println(i);


while(1){

}

   
}

alguém poderia explicar porque quando divido 1/2 o resultado é 0 , na saída do seguinte progama:

Simples.Quando divides um inteiro por um inteiro (1/2) o resultado é um inteiro.Como o resultado real é 0,5 o resultado sera 0.
Se queres ver isso a resultar em 0,5 entao tens de forçar um dos valores a ser tratado como float usando:

i = (float(1)/2);
ou
i = (1.0/2);