Sto cercando di arrotondare i valori del mio array a 2 punti decimali. Capisco che posso usare math.round ma funzionerà per un intero array? O avrò bisogno di scrivere una funzione per arrotondare ogni valore individualmente.Come arrotondare tutti i valori di un array a 2 punti decimali
risposta
Loops!
var x = 0;
var len = my_array.length
while(x < len){
my_array[x] = my_array[x].toFixed(2);
x++
}
E, sì, un ciclo while è più veloce qui.
Cheers per quello. Questo ha funzionato. Mi stavo chiedendo, perché è un po 'più veloce qui? Sono seduto accanto a un genio della logica del computer che è fermamente convinto che un ciclo for sarebbe più veloce? –
Ero un po 'confuso, staresti meglio rimuovendo 'x' e facendo' while (len -) {my_array [len] = my_array [len] .toFixed (2);} 'Il metodo nel mio la risposta è 1 ms più lenta del modo in questo commento ... vedi: https://blogs.oracle.com/greimer/entry/best_way_to_code_a – tkone
Anche se il ciclo 'while' è ancora più veloce del ciclo' for'. Ma come Knuth ha detto ... "Dovremmo dimenticare le piccole efficienze, diciamo circa il 97% delle volte: l'ottimizzazione prematura è la radice di tutti i mali" – tkone
È necessario scorrere l'array. Poi, per ogni elemento:
- Se volete exactely due cifre dopo la virgola, usa il metodo di
<number>.toFixed(2)
. - In caso contrario, utilizzare
Math.round(<number>*100)/100
.
Confronto di entrambi i metodi:
Input .toFixed(2) Math.round(Input*100)/100
1.00 "1.00" 1
1.0 "1.00" 1
1 "1.00" 1
0 "0.00" 0
0.1 "0.10" 0.1
0.01 "0.01" 0.01
0.001 "0.00" 0
Questo è un ottimo momento per utilizzare la mappa.
// first, let's create a sample array
var sampleArray= [50.2334562, 19.126765, 34.0116677];
// now use map on an inline function expression to replace each element
// we'll convert each element to a string with toFixed()
// and then back to a number with Number()
sampleArray = sampleArray.map(function(each_element){
return Number(each_element.toFixed(2));
});
// and finally, we will print our new array to the console
console.log(sampleArray);
// output:
[50.23, 19.13, 34.01]
Così facile! ;)
Buon lavoro questo è quello che sto cercando. –
- 1. Come arrotondare a 2 cifre decimali?
- 2. Come arrotondare un decimale a 2 cifre decimali in .Net?
- 3. javascript - come impedire a Fixed di arrotondare i numeri decimali
- 4. Come arrotondare i decimali per 2 posizioni decimali in Objective-C
- 5. arrotondamento punti decimali
- 6. Android - Rotonda a 2 cifre decimali
- 7. Come aggiungere testo a tutti i valori di javascript Array
- 8. appiattire tutti i valori di più array a Swift
- 9. SQL Server - Come arrotondare o ridurre i decimali?
- 10. numero tondo fino a 2 posizioni decimali
- 11. PHP: imposta tutti i valori di un array su qualcosa
- 12. ottenere tutti i valori di un array ad eccezione dell'ultimo
- 13. Arrotondamento a 2 cifre decimali in SQL
- 14. Come arrotondare un decimale?
- 15. Utilizzo di un array con punti nei valori chiave
- 16. javascript arrotondare correttamente fino a due decimali, impossibile?
- 17. Conversione enumerazioni a matrice di valori (Mettendo tutti i valori in un array JSON)
- 18. Query SQL per troncare a due punti decimali?
- 19. Come impostare la variabile a 2 cifre decimali
- 20. rotonda a 2 cifre decimali
- 21. Punti decimali con std :: stringstream?
- 22. Arrotondare il doppio al 2 decimale
- 23. Come visualizzare un numero con sempre 2 punti decimali usando BigDecimal?
- 24. Arrotonda una risposta a 2 posizioni decimali in Python
- 25. MySQL: moltiplica tutti i valori di una riga di 2
- 26. Formato WPF Listview Colonna per mostrare 2 solo punti decimali.
- 27. limite di un letto a due decimali
- 28. Arrotondare BigDecimal a Valore intero
- 29. flotchart, disattivare i punti decimali sulla scala del grafico
- 30. numero con virgole e punti decimali
Se si desidera due punti decimali per ciascun elemento nell'array, è possibile chiamare Math.Round metodo per l'elemento eacch o si sta cercando qualcos'altro –