- utilizzando Discourse-Subscriptions
- sto cercando di aggiungere un piano tariffario a un prodotto
- Inserisco 19,99 nella casella del prezzo (questo è già difficile perché l’input si comporta in modo molto strano)
- Tento di inviare
- Ricevo l’errore “Intero non valido 1998.9999999999998”
Ho testato questo solo sulla versione stabile 3.5.3 finora, ma il codice è lo stesso sulla beta.
@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);
}
Bruttezza dei float Javascript / IEEE-754:
-> parseFloat("19.99")*100
<- 1998.9999999999998
Correzione suggerita: const decimal = Math.round(Number(value) * 100)
La mia domanda più grande: perché nessuno se n’è accorto? Nessuno ha mai impostato il prezzo a $19,99 prima?