Esiste un modo migliore per calcolare il numero di decimali su un numero rispetto al mio esempio?Il modo più semplice per ottenere il numero di decimali in un numero in JavaScript
var nbr = 37.435.45;
var decimals = (nbr!=Math.floor(nbr))?(nbr.toString()).split('.')[1].length:0;
Per meglio intendo più veloce da eseguire e/o utilizzando una funzione JavaScript nativa, vale a dire. qualcosa come nbr.getDecimals().
Grazie in anticipo!
EDIT:
Dopo aver modificato la risposta series0ne, il modo più veloce ho potuto gestire è: prova
var val = 37.435345;
var countDecimals = function(value) {
if (Math.floor(value) !== value)
return value.toString().split(".")[1].length || 0;
return 0;
}
countDecimals(val);
Velocità: http://jsperf.com/checkdecimals
Dai un'occhiata a questa risposta molto approfondita http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number – Archer
Grazie ma il il richiedente specificò che deve esserci un decimale nei numeri mentre io no. +1 per il link interessante – PhilTrep
@ PhilippeTrépanier, considera ciò che è più importante nel grande schema delle cose. Quanto velocemente esegue JavaScript (la differenza tra la mia risposta e Pete D è minima) e la velocità che scarica sul client? Dal momento che la risposta di Pete D è di pochi byte più brevi, Personalmente sarei in una situazione in cui scegliere. – series0ne