Javascript - 如何获取十进制数后的最后一位数?

时间:2014-11-26 07:05:41

标签: javascript

例如,

var myNum = 1.208452

我需要在小数点后得到myNum的最后一位数,所以它是(2)

4 个答案:

答案 0 :(得分:5)

您可以尝试以下方式:

var temp = myNum.toString();
var lastNum = parseInt(temp[temp.length - 1]); // it's 2

修改

您可能想检查您的号码是否是实际小数,您可以这样做:

var temp = myNum.toString();
if(/\d+(\.\d+)?/.test(temp)) { 
    var lastNum = parseInt(temp[temp.length - 1]);

    // do the rest
}

答案 1 :(得分:2)

这种方法:

var regexp = /\..*(\d)$/;
var matches = "123.456".match(reg);
if (!matches) { alert ("no decimal point or following digits"); }
else alert(matches[1]);

这是如何运作的:

\.    : matches decimal point
.*    : matches anything following decimal point
(\d)  : matches digit, and captures it
$     : matches end of string

答案 2 :(得分:2)

正如评论中指出的那样,我最初误解了你的问题,并认为你想要小数点后的第一个数字,这就是这个单行所做的:

result = Math.floor((myNum - Math.floor(myNum)) * 10);

如果你想要一个纯粹的数学解决方案,它给你小数位后的最后一位数字,你可以转换数字,直到最后一位数字是小数位后面的第一位数,然后使用上面的代码,就像这样(但它不是更长的一个漂亮的单线):

temp = myNum;
while( Math.floor(temp) != temp ) temp *= 10;
temp /= 10;
result = Math.floor((temp- Math.floor(temp)) * 10);

工作原理:

上面的代码将temp乘以10,直到小数点后面没有任何内容,然后除以10得到一个小数位后只有一位数的数字,然后使用我的原始代码给出小数点后的第一个数字地点!呼!

答案 3 :(得分:-2)

只是做:

function lastdigit(a)
{
    return a % 10;
}