如何将数字转换为科学记数法?

Sam*_*mar 25 javascript math html5 scientific-notation

我想创建一个输入值并将其转换为科学记数法的函数(N x 10 ^ a)

我尝试了很多不同的东西,但我似乎无法做到.

例:

我输入200.转换器将其转换为2 x 10 ^ 2

Hun*_*len 57

你可以这样做:

a = 200
a.toExponential(); //output 2e+2
Run Code Online (Sandbox Code Playgroud)

小提琴:http: //jsfiddle.net/Q8avJ/9/

  • [`toExponential`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential)也采用像`toFixed`这样的`digits`参数来控制多少数字小数部分(在`e`之前)!` (3认同)
  • 哇,我不知道这存在:) (2认同)
  • 真棒!但有没有办法以N x 10 ^ a的形式制作它?不过,我仍然可以做到这一点! (2认同)
  • @Samar如果你愿意,你可以使用字符串替换来替换e和x 10,即使它们的意思相同 (2认同)

Man*_*tis 7

在某些时候,我想使用系数和指数作为数字。

如果你想这样做,你可以使用toExponential函数,拆分字符串并将数组的项转换为数字。

在以下代码段中,我将数字分配给numInSciNot对象并以所需格式打印它们。

const num = 200;
const numInSciNot = {};
[numInSciNot.coefficient, numInSciNot.exponent] =
  num.toExponential().split('e').map(item => Number(item));
 
console.log(`${numInSciNot.coefficient} x 10^${numInSciNot.exponent}`);
Run Code Online (Sandbox Code Playgroud)

如果您不想将它们用作数字,则可以使用replace

const num = 200;
 
console.log(num.toExponential().replace(/e\+?/, ' x 10^'));
Run Code Online (Sandbox Code Playgroud)

在这个片段中,我使用 RegExp 来替换eor e+(在正指数的情况下)。

如果要指定小数点后的位数,可以toExponential(NumberOfDigits)在上面的例子中使用。