ich bin der nächste der keine Ahnung vom programmieren hat aber vielleicht bin ich wirklich zu blöd dazu macht mich nieder und belehrt mir eines besseren.
verständnis Probleme mit Variablen
ich habe eine Variable aktuelle_Version = 1;
diese Variable soll um x steigen also aufaddieren
also würde ich im normal Fall schreiben
aktuelle_Version = aktuelle_Version + neue_Variable;
alle Variablen sind als float vordefiniert
das geht leider nicht, hat jemand eine Lösung für mich? muß ich diese wirklich erst zwischenspeichern?
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
Wenn Du flaot hast, wieviele Nachkommastellen brauchst Du denn? (Und vielleicht auch wozu)
Du könntest alternativ einen cast nach int machen, aber dazu müsste man genau wissen, was Du hast und was Du brauchst.
@feldmann123w also normalerweise kann man schon zu einer Variable einen anderen Wert dazu addieren.
void setup() {
Serial.begin(115200);
float aktuelle_Version = 1; // ich habe eine Variable aktuelle_Version
float x = 42;
aktuelle_Version = aktuelle_Version + x; // diese Variable soll um x steigen also aufaddieren
Serial.println(aktuelle_Version);
}
void loop() {
// put your main code here, to run repeatedly:
}
Dass "es geht", hast du schon zweimal als Antwort bekommen.
Was meinst du mit "zwischenspeichern"? Ist schon schwer zu raten, wo du dich verrannt hast.
Zeig dein Problem an einem vollständigen Beispiel (5 - 10 Zeilen sollten reichen).
Vielleicht sieht du selbst da schon klarer
Ich rate noch mal: Du hast eine Version aktuelle_Version = 1.23 und möchtest 0.001 dazufügen.
Eigentlich müsste jetzt 1.231 auf der Anzeige rauskommen.
Du erhälst aber mit Serial.print(aktuelle_Version) noch immer 1.23
Das ist nur eine Limitierung der Anzeige. Der Inhalt stimmt.
Wenn Du mehr Nachkommastellen anzeigen willst, musst Du das auch mitteilen.
Und dann gibt es noch das Problem, dass die Rechnerei mit float nur auf 6-7 Stellen funktioniert (inkl. der Ziffern vor dem Komma!)
// Forensketch
// https://forum.arduino.cc/
const float x = 3.1415926;
const float y = 314159.26;
float z = x + y;
void setup()
{
Serial.begin(115200);
Serial.print("\r\nX: ");
Serial.println(x, 8);
Serial.print("Y: ");
Serial.println(y, 8);
Serial.print("Z: ");
Serial.println(z, 8);
}
void loop()
{}
Wenn Du X und y addierst, kommt eigentlich raus:
314159,26
3,1415926
==============
314162,4015926
Vergleiche mit dem was auf dem seriellen Monitor ausgegeben wird.