Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. C++ Longint in String umwandeln

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

C++ Longint in String umwandeln

Geplant Angeheftet Gesperrt Verschoben Off Topic
5 Beiträge 3 Kommentatoren 275 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    WolfgangFB
    schrieb am zuletzt editiert von
    #1

    In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
    Das ganze funktioniert mit

    lambda 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 int
    
    

    Wie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
    (Oder wie macht man so eine Umwandlung eleganter?)

    paul53P MartinPM 2 Antworten Letzte Antwort
    0
    • W WolfgangFB

      In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
      Das ganze funktioniert mit

      lambda 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 int
      
      

      Wie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
      (Oder wie macht man so eine Umwandlung eleganter?)

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @wolfgangfb

      Google sagt:

      printf("%ll", n);   // long long
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      W 1 Antwort Letzte Antwort
      0
      • W WolfgangFB

        In Esphome habe ich eine Zeitkomponente die ich als ms seit 1970 in einen String schreiben möchte.
        Das ganze funktioniert mit

        lambda 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 int
        
        

        Wie macht man dieses Typcast sauber so dass die Warnmeldung wegfällt?
        (Oder wie macht man so eine Umwandlung eleganter?)

        MartinPM Offline
        MartinPM Offline
        MartinP
        schrieb am zuletzt editiert von MartinP
        #3

        @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 ....

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        W 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @wolfgangfb

          Google sagt:

          printf("%ll", n);   // long long
          
          W Offline
          W Offline
          WolfgangFB
          schrieb am zuletzt editiert von
          #4

          @paul53 sagte in C++ Longint in String umwandeln:

          @wolfgangfb

          Google sagt:

          printf("%llu", n);   // unsigned long long
          

          Danke, das habe ich gesucht.

          1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            @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 ....

            W Offline
            W Offline
            WolfgangFB
            schrieb am zuletzt editiert von
            #5

            @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.

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            596

            Online

            32.5k

            Benutzer

            81.7k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe