Ankündigung

Einklappen
Keine Ankündigung bisher.

Real Wert immer mit 2 Kommastellen anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Real Wert immer mit 2 Kommastellen anzeigen

    Hallo Leute,
    ich bekomme von einer Steuerung einen Realwert.
    Dieser wird mir aber, je nachdem wie er gerade ankommt in verschieden Längen angezeigt.

    zB.
    4,1199998045559082
    4
    4,25

    Gibt es eine Möglichkeit diesen Wert immer mit 2 Kommastellen anzuzeigen?
    Das Ergebnis sollte dann sein:
    4,12
    4,00
    4,25


    #2
    In welcher version der smartVISU und mit welchem Widget?
    In 2.8 kannst du bei basic.float, basic.formula und basic.value als unit 'float' angeben.
    In 2.9 bei basic.print als format ebenfalls. Als Ergänzung kannst du in 2.9 aber auch direkt eigene Zahlenformate in PHP sprintf Art angeben, z.B. '%01.1f' für eine Nachkommastelle.

    Kommentar


      #3
      Ich verwende 2.8
      Der Code sieht momentan so aus
      Code:
      {{ basic.float('temp.aussen.carport1', 'temp.aussen.carport', '°C Aussentemp.') }}
      Wie kann ich hier unit 'float' angeben?

      Kommentar


        #4
        Gar nicht, weil du als unit bereits '°C Aussentemp.' gesetzt hast.
        Diesen Text müsstest du dann einfach hinter das Widget schreiben:
        Code:
        {{ basic.float('temp.aussen.carport1', 'temp.aussen.carport', 'float') }} °C Aussentemp.
        Alternativ kannst du als Unit '°' verwenden und nur 'Aussentemp.' dahinter schreiben. Dann wird die Temperatur mit einer Nachommastelle angezeigt (genauere Messungen sind wohl eh unrealistisch):
        Code:
        {{ basic.float('temp.aussen.carport1', 'temp.aussen.carport', '°') }} Aussentemp.

        Kommentar


          #5
          Danke

          Kommentar


            #6
            @macs412: Nur mal so aus Neugier - wie es scheint, hast Du die Schnittstelle zur S7 zum Laufen bekommen?
            /tom

            Kommentar


              #7
              Die Verbindung funktioniert.
              Da ich viel probiert habe, kann ich aber nicht sagen was jetzt wirklich zielführend war.
              Wenn ich Zeit habe, werde ich die Installation noch einmal durchlaufen lassen.
              Die Ergebnisse werde ich dann hier posten.

              Kommentar


                #8
                Wäre super, danke!!!
                /tom

                Kommentar


                  #9
                  Hi

                  Um zum Thema zurückzukommen:

                  Dafür gibt es die language Format Dateien im Unterverzeichnis ./lang/
                  Hier mal ein Ausschnitt:

                  Code:
                  // -----------------------------------------------------------------------------
                  // F O R M A T
                  // -----------------------------------------------------------------------------
                  
                  $lang['format']['int']                = '%d';
                  $lang['format']['float']            = '%01,2f';
                  $lang['format']['temp']                = '%01,1f °C';
                  $lang['format']['°']                = '%01,1f °C';
                  $lang['format']['%']                  = '%01,0f %';
                  $lang['format']['%rf']                  = '%01,1f %';
                  $lang['format']['€']                = '%01,2f €';
                  $lang['format']['speed']            = '%01,0f km/h';
                  $lang['format']['km/h']                = '%01,0f km/h';
                  $lang['format']['v']                = '%01,0f V';
                  $lang['format']['a']                = '%01,2f A';
                  $lang['format']['w']                = '%01,0f W';
                  $lang['format']['kwh']                = '%01,2f kWh';
                  $lang['format']['af']                = '%01,1f g/kg';
                  $lang['format']['lux']                = '%01,0f lx';
                  $lang['format']['l/m²']                = '%01,1f l/m²';
                  $lang['format']['m³']               = '%01,0f m³';
                  $lang['format']['l']                = '%01,0f l';
                  
                  $lang['format']['date']                = 'd.m.y';
                  $lang['format']['time']                = 'H:i';
                  $lang['format']['short']            = 'd.m.y H:i';
                  $lang['format']['long']                = 'd.m.Y H:i:s';
                  Das ist wohl "fast" selbsterklärend. Kann man wunderbar beliebige Units selbst anlegen.
                  Du müsstest also, wie smai geschrieben hat, deine °C in ° ändern, dann hast du zuerst aber nur eine Nachkommastelle (was bei Temperaturen ja wohl auch reicht). Wenn du trotzdem 2 willst, änderst du die Zeile

                  $lang['format']['°'] = '%01,1f °C'; in
                  $lang['format']['°'] = '%01,2f °C';

                  Alternativ fügst Du eine neue Zeile hinzu, die so aussieht:

                  $lang['format']['°C'] = '%01,2f °C';

                  Dann bräuchtest du im Widget gar nichts ändern.

                  Gruß, Martin

                  Kommentar

                  Lädt...
                  X