Diskuze: Zaokrouhlení float

Ostatní jazyky Ostatní programovací jazyky Zaokrouhlení float

Avatar
Bimbo
Člen
Avatar
Bimbo:

Zdravím.

S teplloměru mam výstup 22.20
Potřebují to zaokrouhlít na 1 desetine čislo 22.2

float a = 22.20;
String b = String(a,1);
Serial.println( a); //20.20
Serial.println( b); //20.2

Jak však na to, když nechcí string ale zase float?

 
Odpovědět 21. března 22:20
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Bimbo
Tomáš Brůna:

zkusil bych

float(string)

PS: používej tlačítko code
PS2: příště se hodí zmínit že jde o arduino ;)

Nahoru Odpovědět 21. března 22:29
Lepší být šprt než blbec :)
Avatar
Tomáš Brůna
Redaktor
Avatar
Nahoru Odpovědět 21. března 22:30
Lepší být šprt než blbec :)
Avatar
Bimbo
Člen
Avatar
Bimbo:

float(string) jsem zkoušel
To mi uděla s 20.2 zas 20.20

 
Nahoru Odpovědět 21. března 22:47
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Bimbo
Tomáš Brůna:

tak to potom netuším

Editováno 21. března 22:54
Nahoru Odpovědět 21. března 22:53
Lepší být šprt než blbec :)
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Bimbo
Martin Dráb:

Spíš mi to přijde, že je problém v konverzi floatu na řetězec, i třeba té implicitní (pro tebe), kterou bude provádět Serial.print.

Řekl bych, že jinak bude float vypadat stejně, ať už ho inicializuješ hodnotou 22.20 nebo 22.2. Nebo když napíšeš

float a = 22.2;

tak to nevypisuje tu nulu?

Nahoru Odpovědět 22. března 0:30
2 + 2 = 5 for extremely large values of 2
Avatar
Bimbo
Člen
Avatar
Bimbo:

Hm, mate pravdu

Serial.begin(9600);
float a = 22.2;
Serial.print(a);

Vypisuje to 22.20 :-(

 
Nahoru Odpovědět 23. března 7:05
Avatar
Majo Strba
Člen
Avatar
Majo Strba:

Mne to takto funguje

Serial.print(a, 1);
 
Nahoru Odpovědět 23. března 8:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.