在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]
    拆分值并返回数组的第一个值
  • slice(-N)
    获取最后N位
我需要找到其中任何一个的最后六位数字(或可用金额) 这些数字

我假设您的意思是-小数点前的最后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]
    拆分值并返回数组的第一个值
  • slice(-N)
    获取最后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
。对于十进制,您没有指定。