如何在JS中将此科学数字7.125693126643573e + 26转换为纯数字而无需任何科学记数法
答案 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}`);