21-02-2018, 14:27
Nie wiem z czym walczysz. Może ja za mało kawy dzisiaj wypiłem, może piszesz niejasno.
Tu przykład konwersji liczb ułomnych do napisów.
A czemu należy unikać liczb zmiennoprzecinkowych zauważysz po chwili oglądania wydruków. Możesz też się domyśleć dlaczego komputer/telefon trzeba restartować co jakiś czas.
Czemu należy unikać String,String() to też inny temat.
W każdym bądź razie najlepiej te wyniki zamieniać na liczbę int//uint/uint16_t/uint32_t w zależności jakie na nich chcesz robić operacje i jaki jest wymagany zakres, pamiętać że jest ona x100, x1000000, na takich liczba wykonywać obliczenia/porównania i zapisywać do tablicy znaków zamiast do String.
Tu przykład konwersji liczb ułomnych do napisów.
Kod:
float liczbafloat= 15.5555555555555;
double liczbadouble= 22.2222222222222;
String stringfloat="";
String stringdouble="";
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.print("Liczbafloat, wydruk domyslny = ");
Serial.println (liczbafloat);
Serial.print("Liczbadouble, wydruk domyslny = ");
Serial.println (liczbadouble);
Serial.println ();
liczbafloat+=1;
liczbadouble+=1;
stringfloat=(String(liczbafloat));
stringdouble=(String(liczbadouble));
Serial.println("Po konwersji na stringi");
Serial.print("Liczbafloat jako string domyslny = " );
Serial.println (stringfloat);
Serial.print("Liczbadouble jako string domyslny = " );
Serial.println (stringdouble);
Serial.println ();
Serial.println ("###################### po formatowniu do 6 znakow po przecinku ###################################");
Serial.print("Liczbafloat, wydruk domyslny = ");
Serial.println (liczbafloat,6);
Serial.print("Liczbadouble, wydruk domyslny = ");
Serial.println (liczbadouble,6);
Serial.println ();
stringfloat=(String(liczbafloat,6));
stringdouble=(String(liczbadouble,6));
Serial.println("Po konwersji na stringi");
Serial.print("Liczbafloat jako string domyslny = " );
Serial.println (stringfloat);
Serial.print("Liczbadouble jako string domyslny = " );
Serial.println (stringdouble);
Serial.println ();
liczbafloat+=1;
liczbadouble+=1;
delay(1000);
}
A czemu należy unikać liczb zmiennoprzecinkowych zauważysz po chwili oglądania wydruków. Możesz też się domyśleć dlaczego komputer/telefon trzeba restartować co jakiś czas.
Czemu należy unikać String,String() to też inny temat.
W każdym bądź razie najlepiej te wyniki zamieniać na liczbę int//uint/uint16_t/uint32_t w zależności jakie na nich chcesz robić operacje i jaki jest wymagany zakres, pamiętać że jest ona x100, x1000000, na takich liczba wykonywać obliczenia/porównania i zapisywać do tablicy znaków zamiast do String.
Miło być decenianym https://buycoffee.to/kaczakat