2016-04-26 7 views
3

Ich habe eine Nummer aus der Datenbank wie diese 7.0 oder 7.7. Wenn ich den Wert drucke, druckt die 7.7 so, wie sie ist, aber 7.0 wird als nur 7 gedruckt. Gibt es eine Möglichkeit, 7.0 als 7.0 zu drucken. Ich benutze Zweig Vorlage in SF2. DieseWie wird Integer mit 0 als Dezimalwert gedruckt?

ist, wie ich diese Werte am Druck

{{ object.value }} 
+0

Verwenden 'floatval()' Funktion . – Ali

Antwort

1

statt 7.0 als 7.0 geben, um es zu tun, aber zumindest habe ich bekam etwas arbeiten

Zuerst habe ich das geprüft Länge, wenn die Länge 1 oder 2 war, drucke ich den Wert und angehängt .0 sonst habe ich einfach nur den Wert gedruckt.

{% if (device.ph_value|length == 1 or device.ph_value|length == 2)%} 
    {{device.ph_value}}.0 
{% else %} 
    {{device.ph_value}} 
{% endif %} 
+0

Wie überprüfen Sie die Länge für '7' oder' 77'? –

+1

durch Umwandlung in Zeichenfolge –

+0

Hoppla, mein Beispiel war falsch, was ist, wenn Sie '777' haben? –

-2

Sie etwas tun könnte weiter um den Wert zu erhalten. Dies kann nicht der richtige Weg sein

$integer = filter_var(7.7, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); 

    print_r($integer); 

    output 
    7.7 
+0

Wie verwenden Sie das in einer Twig-Vorlage? –

+0

http://stackoverflow.com/questions/10945200/twig-variables-in-twig-variable – unixmiah

-1
echo number_format(object.value,1); 

Dies sollte von 7

+1

aber was ist, wenn die Zahl wie 7.89 ist. Ich möchte es so zeigen wie es ist. Danke für die Antwort mann –

+1

Mein Rat ist es, Strlen zu verwenden, um die Länge der Zeichenfolge zu lesen und wie in diesem Fall 1 subtrahieren. Strlen() = 3 -1 = 2. Zahlenformat (vvv, 2); aber Sie müssen es codieren – Andreas

+0

Möglicherweise verwenden Sie strpos, um zu lesen, wo der Punkt auch ist. – Andreas

4

Sie können die number_format Zweig-Filter, wie zB:

{{ object.value|number_format }} 

Voll Beispiel:

{{ 9800.333|number_format(2, '.', ',') }} 

Mehr Informationen im doc here

+1

Soll es stattdessen 'number_format (1, '.', ',')' 'Sein? Es sieht so aus, als ob das OP nur eine Dezimalzahl haben möchte. –