NEWS
C++ Longint in String umwandeln
-
In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
Das ganze funktioniert mitlambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));ich bekomme aber eine Warnug dass ich "int" mit "long" verwurstle.
/opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml: In lambda function: /opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml:378:26: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long int' [-Wformat=] 378 | payload: !lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp)); | ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | long long intWie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
(Oder wie macht man so eine Umwandlung eleganter?) -
In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
Das ganze funktioniert mitlambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));ich bekomme aber eine Warnug dass ich "int" mit "long" verwurstle.
/opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml: In lambda function: /opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml:378:26: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long int' [-Wformat=] 378 | payload: !lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp)); | ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | long long intWie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
(Oder wie macht man so eine Umwandlung eleganter?) -
In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
Das ganze funktioniert mitlambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));ich bekomme aber eine Warnug dass ich "int" mit "long" verwurstle.
/opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml: In lambda function: /opt/iobroker/iobroker-data/esphome.0/mini-engel.yaml:378:26: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long int' [-Wformat=] 378 | payload: !lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp)); | ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | long long intWie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
(Oder wie macht man so eine Umwandlung eleganter?)@wolfgangfb said in C++ Longint in String umwandeln:
lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));
- Was soll das "abs(..)"?
- Mit welcher Klassen ist das Objekt "id()" kreiert worden?
Je nach print - Bibliothek unterscheiden sich die Format-Qualifier.
"%llu" wäre mein Ratschlag ....
-
@paul53 sagte in C++ Longint in String umwandeln:
Google sagt:
printf("%llu", n); // unsigned long longDanke, das habe ich gesucht.
-
@wolfgangfb said in C++ Longint in String umwandeln:
lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));
- Was soll das "abs(..)"?
- Mit welcher Klassen ist das Objekt "id()" kreiert worden?
Je nach print - Bibliothek unterscheiden sich die Format-Qualifier.
"%llu" wäre mein Ratschlag ....
@martinp sagte in C++ Longint in String umwandeln:
@wolfgangfb said in C++ Longint in String umwandeln:
lambda return str_sprintf("%d", abs(id(MySntp).now().timestamp));
- Was soll das "abs(..)"?
Ist unnötig, war mein erster Versuch das umzuwandeln.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden