在Javascript中查找指数数字的最后六位?
我有一个数字,假设我有三个数字在Javascript中查找指数数字的最后六位?,javascript,numbers,Javascript,Numbers,我有一个数字,假设我有三个数字 const num1 = 21; // output: 21 const num2 = 12345678; // output: 345678 const num3 = 1.359801885649216e+34; // output: ?? (probably 000000) 应该指出,我真的不知道e+做什么 我需要找到这些数字的最后六位数(或可用金额) 如何在Javascript中找到这些数字的最后六位数字 我需要找到其中任何一个的最后六位数字(或可用金额)
const num1 = 21; // output: 21
const num2 = 12345678; // output: 345678
const num3 = 1.359801885649216e+34; // output: ?? (probably 000000)
应该指出,我真的不知道e+
做什么
我需要找到这些数字的最后六位数(或可用金额)
如何在Javascript中找到这些数字的最后六位数字
我需要找到其中任何一个的最后六位数字(或可用金额)
这些数字
我假设您的意思是-小数点前的最后6位
以最大精度使用100
num = 1.359801885649216e+34;
var fnLastNDigits = ( num, N ) => num.toPrecision( 100 ).split( "." )[ 0 ].slice( -N );
console.log( fnLastNDigits( num ) );
解释
返回具有给定精度的字符串值num.toPrecision(100)
按split(“.”[0]
拆分值并返回数组的第一个值
获取最后N位slice(-N)
100
num = 1.359801885649216e+34;
var fnLastNDigits = ( num, N ) => num.toPrecision( 100 ).split( "." )[ 0 ].slice( -N );
console.log( fnLastNDigits( num ) );
解释
返回具有给定精度的字符串值num.toPrecision(100)
按split(“.”[0]
拆分值并返回数组的第一个值
获取最后N位slice(-N)
1e6
,但正如Alnitak在评论中指出的那样,您只能得到最接近的浮点值
对于最后一个案例,数字
13598018856492160349090412205441024
取最后6位数字
441024
console.log([2112345678,1.359801885649216e+34].map(v=>v%1e6))代码>您可以休息一下1e6
,但是您只能得到最接近的浮点值,正如Alnitak在注释中指出的那样
对于最后一个案例,数字
13598018856492160349090412205441024
取最后6位数字
441024
console.log([2112345678,1.359801885649216e+34].map(v=>v%1e6))代码>它们是零。还是你想要“16e+34”。请更具体一点。小数点前的最后6位?我更新了问题,使之更具体@Federicoklezculloca不够具体。在浮点数学中,1.359801885649216e+34大约等于13598018856492160000000000000000,但并不完全相等,因为64位双精度浮点不能实际保存该特定值。对于整数,只需执行n%1000000
。对于十进制,您没有指定。它们是零。还是你想要“16e+34”。请更具体一点。小数点前的最后6位?我更新了问题,使之更具体@Federicoklezculloca不够具体。在浮点数学中,1.359801885649216e+34大约等于13598018856492160000000000000000,但并不完全相等,因为64位双精度浮点不能实际保存该特定值。对于整数,只需执行n%1000000
。对于十进制,您没有指定。