如何在JS中将巨数转换为纯数

时间:2019-01-09 06:20:06

标签: javascript numbers

如何在JS中将此科学数字7.125693126643573e + 26转换为纯数字而无需任何科学记数法

3 个答案:

答案 0 :(得分:0)

使用内置函数Number

  let number=Number("7.125693126643573E26") 

您还可以使用数学将其转换

 let number=("7.125693126643573e+26")
 parts = String(number).toLowerCase().split('e'), 
 e = parts.pop(),
 l = Math.abs(e), 
 sign = e/l,
 coeff_array = parts[0].split('.');

 var dec = coeff_array[1];
 if(dec) l = l - dec.length;
 num = coeff_array.join('') + new Array(l+1).join('0');

       alert(num)

答案 1 :(得分:0)

使用.toLocaleString

 var a=7.125693126643573E26;
    console.log(a.toLocaleString()); `//output -> 712,569,312,664,357,300,000,000,000`




 console.log(a.toLocaleString('aa', { useGrouping: false })); `//output -> 712569312664357300000000000`

这也会删除分组。

但是它将使您的电话号码成为字符串。

答案 2 :(得分:0)

如果以科学计数形式提供数字,则可能会太大而无法使用整数表示它而不会发生整数溢出。使用字符串函数将科学计数法数字分开并构造新的字符串。

const largeNumber = "7.125693126643573E+26"

const [digit, decimal] = largeNumber.toLowerCase().split(".");
const [decimals, power] = decimal.split('e+');
const zerosToFill = power - decimals.length;
const zeros = Array(zerosToFill).fill(0);

const fullNumber = [digit, decimals, ...zeros].join('');

console.log(`${largeNumber} => ${fullNumber}`);