- Discourse-Subscriptions verwenden
- Versuchen, einen Preisplan zu einem Produkt hinzuzufügen
- Geben Sie 19,99 in das Preisfeld ein (dies ist bereits schwierig, da die Eingabe sich sehr seltsam verhält)
- Versuchen Sie, zu senden
- Fehlermeldung erhalten: „Ungültige Ganzzahl 1998.9999999999998“
Ich habe dies bisher nur mit Stable 3.5.3 getestet, aber der Code ist in Beta derselbe.
@computed("unit_amount")
get amountDollars() {
return parseFloat(this.get("unit_amount") / 100).toFixed(2);
}
set amountDollars(value) {
const decimal = parseFloat(value) * 100;
this.set("unit_amount", decimal);
}
Javascript / IEEE-754 Float-Tücken:
-> parseFloat("19.99")*100
<- 1998.9999999999998
Vorgeschlagene Korrektur: const decimal = Math.round(Number(value) * 100)
Meine größte Frage: Warum ist das niemandem aufgefallen? Hat niemand zuvor den Preis auf 19,99 $ festgelegt?