Stò realizzando un codice su numero UDINT a base 7 per compattare una matrice ad USINT. La sintassi per la sua generazione è:
FOR t:=0 TO 10 DO
Valore:=Valore+Data[t]*TO_UDINT(POW(7.0,TO_REAL(t)));
END_FOR;
dove Data è la matrice contente valori 0 a 6. Il problema è che quando t è uguale a 9 e a 10 il calcolo della potenza è errato e pertanto il codice generato è sbagliato.
Ho verificato che POW(7.0,9.0) da come risultato 40353608 anzichè 40353607 e POW(7.0,10.0) restituisce 282475264 anziché 282475249
Lo SlimLine è un PCB135A110 il SW è SFW184B070. Ho provato con il simulatore e le cose cambiano di poco: 7^9 = 40353604; 7^10=282475232. Cosa posso fare?