JavaScript: Get the second digit from a number?

So you want to get the second digit from the decimal writing of a number.

The simplest and most logical solution is to convert it to a string :

var digit = (''+myVar)[1];

or

var digit = myVar.toString()[1];

If you don’t want to do it the easy way, or if you want a more efficient solution, you can do that :

var l = Math.pow(10, Math.floor(Math.log(myVar)/Math.log(10))-1);
var b = Math.floor(myVar/l);
var digit = b-Math.floor(b/10)*10;

Demonstration

For people interested in performances, I made a jsperf. For random numbers using the log as I do is by far the fastest solution.

Leave a Comment