Using IDE2.1.0 on Linux Mint 21.1 and Arduino Uno R3.
Result of calculation is incorrect for some but not all values. Here is a sample code:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
float value1 = 32.757;
float value2 = 32.758;
float value3 = 32.759;
float value4 = 32.760;
float value5 = 32.761;
float value6 = 32.762;
long result1 = (long)(value1 * 2000.0);
long result2 = (long)(value2 * 2000.0);
long result3 = (long)(value3 * 2000.0);
long result4 = (long)(value4 * 2000.0);
long result5 = (long)(value5 * 2000.0);
long result6 = (long)(value6 * 2000.0);
Serial.print(result1);
Serial.print("\t");
Serial.print(result2);
Serial.print("\t");
Serial.print(result3);
Serial.print("\t");
Serial.print(result4);
Serial.print("\t");
Serial.print(result5);
Serial.print("\t");
Serial.print(result6);
Serial.print("\t");
Serial.println("");
}
void loop() {
// put your main code here, to run repeatedly:
}
it prints results as follows:
65514 65516 65517 65519 65522 65524
Clearly, the results 3 and 4 are wrong.
Unfortunately, I do not have another Uno to see if the problem is caused by bad Atmega chip or bad software.
Your help would be much appreciated.
Best regards