7 Stelliger int teilen

Hallo allerseits,

ich möchte einen 7 stelligen wert nach der 4. stelle teilen.

Ich bekomme von meinem mqtt Sensor einen int Wert (Decimal), den ich bevor ich in weiter verarbeite teilen möchte.

 int value = mySwitch.getReceivedValue();

z.B.: 4374951

Erster Wert : 4374
Zweiter Wert : 951

Ich denke ich muss das mit itoa machen, habe aber gerade null idee.

Kann jemand Helfen ?

Vielen Dank

itoa() konvertiert in einen C String

Du machst einfach einmal eine Division durch 1000 und dann eine Modulo-Division durch 1000:
4374951 / 1000 = 4374
4374951 % 1000 = 951

Du hast doch schon den Zahlenwert, was soll da itoa?

Vorkomma = Wert / 1000;
Nachkomma = Wert % 1000;

Gruß Tommy

Hi

Da int nur bis 32767 geht, wirst Du ganz andere Probleme haben.
unsigned wäre zumindest das Doppelte möglich - also bis 65535.
Dann könnte man noch ein paar Bits mehr nehmen, dann werden auch die Zahlen größer.
Welchen Datentyp Du brauchst, hängt also davon ab, mit was für zahlen Du rechnest.

Wo siehst Du ein Problem?
123456789:1000=123456
123456789%1000=789

Teilen für die vorderen Zahlen
Modulo für die Hinteren

Oder anders gefragt: Wo bekommst Du die Zahlenwurst her?

MfG

Wo nimmst Du : als Rechenschritt in C her?

Gruß Tommy

postmaster-ino:
Da int nur bis 32767 geht, wirst Du ganz andere Probleme haben.

MQTT deutet ziemlich stark auf einen ESP8266 oder ESp32 hin, da stimmt das nicht.

Sagen wir dann daß ein int auf einem 8Bit Arduino nur bis 32767.

Andere Hardware kann andere Limits haben.

Grüße Uwe

Hi

Gebe mich geschlagen, ein Grund mehr, uint16_t zu benutzen - Da sieht man, was man hat - überall.

MfG