modulo con valori float

ciao a tutti devo normalizzare dei valori float tra i valori -3.14 e 3.14 normalmente si fa: norma = x%3.14;

peccato che in arduino % funziona solo con gli interi.

le 2 soluzioni che vedo per ora sono: 1: while ( abs(x) > 3.14 ){ x/=3.14; } 2: long v = x*100000;//si perde di precisione ma chissene x= (v%314000)/100000;

altre soluzioni? cerco qualcosa di particolarmente veloce

non ho capito che devi fare, cosa intendi per normalizzare?

scusa ma....

if x>0 fai il modulo else moltipchi x per -1 fai il modulo

Intende dire riportare il valore all'interno di un intervallo. Nel suo caso, l'intervallo è -3,14 / +3,14.

leo72: Intende dire riportare il valore all'interno di un intervallo. Nel suo caso, l'intervallo è -3,14 / +3,14.

esatto, in particolare stiamo parlando di rotazioni in radianti dove 2PI è l'angolo giro

skaxxo: if x>0 fai il modulo else moltipchi x per -1 fai il modulo

?? che c'entra il modulo?

lesto: ?? che c'entra il modulo?

modulo (%) ovvero il resto della divisione.... viene chiamato anche modulo in programmazione... in matematica il modulo è abs()... vabè...

eh ma il modulo (http://arduino.cc/en/Reference/Modulo) funziona solo con gli interi, se no non aprivo la discussione :)

The modulo operator does not work on floats.

ah scusa, pensavo che intero=positivo. sto fuso, pardon! la tua versione è ok... anche perchè matematicamente è la soluzione migliore...