Sono d'accordo che i linguaggi siano diversi, possono avere o non avere funzioni che troncano e arrtondano...
ma quando 2 + 2 fa 4 per me e non per il linguaggio per me rimane un errore
Sono d'accordo che i linguaggi siano diversi, possono avere o non avere funzioni che troncano e arrtondano...
ma quando 2 + 2 fa 4 per me e non per il linguaggio per me rimane un errore
Scusate se riesumo un topic così vecchio, ma per era per evitare di farne un altro!
Allora, ho usato la funzione somma=Math.round(somma*100)/100;
ma non funziona in tutti i casi.
Come molti ho fatto anche io un carrello per e-commerce, ma in alcuni casi mi crea quel casino con l'arrotondamento di cui si parla.
Per esempio con la somma di 2.8 e 2.4 mi viene fuori 5.1999999..
Ho provato ad aggiungere gli zeri nell'arrotondamento (sperando che era quella la soluzione...) ma come potete intuire non è cambiato nulla...
Qualche soluzione?
Ciaooooooo!!!!!!!!
Originariamente inviato da kalamaro
una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?
codice:function Around(number,X) { X = (!X ? 2 : X); return Math.round(number*Math.pow(10,X))/Math.pow(10,X); } alert(Around(2.8+2.4,2));
2+2 in JS fa 4!!!!!Originariamente inviato da angykiss
Sono d'accordo che i linguaggi siano diversi, possono avere o non avere funzioni che troncano e arrtondano...
ma quando 2 + 2 fa 4 per me e non per il linguaggio per me rimane un errore
sono "errori" come dici tu dovuti all'elevata dinamicità e leggerezza del linguaggio....come hai notato le variabili che hai dichiarati non le hai dichirate come intero, stringa o virgola mobile o fissa ma semplicemente come variabili...
non puoi sapere come JS tratta i dati dall'interno...
per questo esiste l'oggetto Math con i relativi metodi (matematici) che serve per compiere operazioni di arrotondamente, troncatura, etc
Let's your dream came true!