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

Javascript - How to get the last digit after decimal number?

本文关键字:十进制数 最后一位 数字 获取 何获取 Javascript      更新时间:2023-09-26

例如,

var myNum = 1.208452

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

你可以尝试这样的事情:

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
}

这种方法:

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

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

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 得到一个小数位后只有一个数字的数字,然后用我的原始代码给你小数点后的第一个数字!唷!

只需执行以下操作:

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