2016-03-31 5 views
0

Ich versuche, eine Lösung für das folgende Problem zu finden. Ich habe eine Liste von Objektiven mit verschiedenen Stärken. Sie beginnen von -12.00 und gehen bis zu +8.00. In den meisten Fällen sind sie 0.50 von der nächsten entfernt (6.00, 6.50, 7.00 s.o.).
Ich habe eine Liste mit allen möglichen Energien gespeichert unter Einstellungen, in einem Array. Und dann hat es für jede verfügbare Linsenmarke ein Metafeld mit der minimal verfügbaren Leistung und der maximalen.
Ich sah es als einen Vergleich, nur die Kräfte von Einstellungen anzeigen, die zwischen diesen Grenzen sind. Ich traf jedoch eine Einschränkung. Ich kann 6.5 zum Beispiel in einem Metafeld nicht als Zahl speichern, es kann nur eine Zeichenkette sein und es macht es schwierig, den Einstellungswert mit diesem zu vergleichen.
Ich habe versucht, einen mathematischen Filter (Zeiten) zu verwenden, aber die Zahl ist gerundet. Wenn ich "6.5" habe und ich mal filtere, bekomme ich "6".Shopify Flüssigkeit: Vergleiche Einstellungen Array mit Metafeld Wert

Fragen:
1. Wie würden Sie das tun?
2. Wie kann ich sicherstellen, dass jeder Wert, wenn es keine Zeichenfolge ist, zwei Dezimalstellen hat? (Zum Beispiel 6,50)

+0

Hallo Andrew, ich möchte mit dir über etwas SEHR wichtig reden. Kannst du mir bitte eine E-Mail an sachinkainth [at] hotmail.com schicken? Vielen Dank. –

Antwort

1

sagen Lassen Sie die MetaField wie diese product.metafields.power.value = 6.5 ist. Tun Sie dies:

{% assign power_value = product.metafields.power.value | plus: 0 %}

Boom. power_value ist jetzt eine Nummer.

+0

Es wird aufhören zu arbeiten, sobald Sie dort eine negative Zahl haben. Wenn Sie -6.5 haben und diesen Filter anwenden, erhalten Sie -6. Werfen Sie einen Blick auf diese – Andrew

+0

- https://docs.shopify.com/themes/liquid/filters/math-filters Sie multiplizieren/dividieren zu einem gewissen Effekt. – HymnZ