2016-06-16 16 views
3

Ich habe frontmatter, die wie folgt aussieht:Nachgestellte Nullen in Jekyll/Flüssig

products: 
- item: item name 
    price: 39.50 
- item: item number two 
    price: 12.50 

Wie kann ich diese Variablen in flüssiger Ausgabe mit Nullen Hinter?

Beachten Sie, dass {{ products[0].price }}39.5 ausgegeben wird. Ich brauche es, um auszugeben.

Antwort

3

Dies wäre ein Weg, es zu tun, in mehreren Schritten:

  • Runde die Anzahl N Dezimalstellen (beispielsweise 2) so Dezimalzahlen haben eine einheitliche Größe;
  • Teilen Sie die Zahl durch das Dezimaltrennzeichen, so erhalten Sie ein Array mit zwei Elementen, mit dem integralen Teil auf Element 0 und dem Bruchteil auf Element 1;
  • Hängen Sie dem Bruchteil N nachgestellte Nullen an, und schneiden Sie den String mit N ab, so dass Sie genau N Dezimalstellen erhalten.

{% assign price_split = page.products[0].price | round: 2 | split: "." %} 
{% assign integral = price_split[0] %} 
{% assign fractional = price_split[1] | append: "00" | truncate: 2, "" %} 

Formatted Price: {{ integral }}.{{ fractional }} 
+0

Ich mag den Append und trunkieren Trick! Klug! – JoostS

4

Ich bin sicher, Sie können es zusammen mit einer Reihe von Filtern hacken, aber eine schnelle und dumme Lösung wäre, einfach Ihre price in Anführungszeichen zu wickeln, um es zu einem String-Wert anstelle eines Zahlenwerts zu machen. In diesem Fall wird es genau so ausgegeben, wie Sie es eingegeben haben, einschließlich aller abschließenden Nullen.

products: 
- item: item name 
    price: "39.50" 
- item: item number two 
    price: "12.50" 

Wenn Sie Sachen mit dem numerischen Wert müssen tun, könnten Sie zwei Variablen haben: einen Zahlenwert für den Preis und einen String-Wert für das Preisschild.

products: 
- item: item name 
    price: 39.50 
    priceLabel: "39.50" 
- item: item number two 
    price: 12.50 
    priceLabel: "12.50" 
+0

Können Sie mir zeigen, wie es zusammen zu hacken? Da ich keinen Teilstring-Filter gefunden habe, kann ich mit 100 multiplizieren, aber ich kann keinen Punkt an der richtigen Stelle hinzufügen. Irgendwelche Ideen? – JoostS