Czy istnieje lepszy sposób obliczenia liczby miejsc dziesiętnych na liczbie niż w moim przykładzie?Najprostszy sposób na uzyskanie liczby miejsc po przecinku w liczbie w kodzie JavaScript
var nbr = 37.435.45;
var decimals = (nbr!=Math.floor(nbr))?(nbr.toString()).split('.')[1].length:0;
Lepiej rozumiem szybsze wykonywanie i/lub używanie natywnej funkcji JavaScript, np. coś takiego jak nbr.getDecimals().
Z góry dziękuję!
EDIT:
Po zmodyfikowaniu series0ne odpowiedź, najszybszy sposób mogę zarządzać to: test
var val = 37.435345;
var countDecimals = function(value) {
if (Math.floor(value) !== value)
return value.toString().split(".")[1].length || 0;
return 0;
}
countDecimals(val);
Speed: http://jsperf.com/checkdecimals
Spójrz na tę bardzo dokładną odpowiedź http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number – Archer
Dziękuję, ale Pytający stwierdził, że liczba musi być liczbą dziesiętną, a ja nie. +1 za interesujący link – PhilTrep
@ PhilippeTrépanier, zastanów się, co jest ważniejsze w wielkim schemacie rzeczy. Jak szybko uruchamia się JavaScript (różnica pomiędzy moją odpowiedzią a Pete D jest minimalna), a prędkość jest pobierana dla klienta? Ponieważ odpowiedź Pete'a D'jest krótsza o kilka bajtów, osobiście znajdę się w kłopotliwym położeniu, do wyboru. – series0ne