将指数值打印为字符串而不展开

时间:2016-03-07 08:21:13

标签: javascript

var y = 123e5;
console.log(y); // output: 12300000

上面的代码有一个数字变量y,我得到的输出是12300000。我想将它显示为相同但是作为一个字符串。输出应该是' 123e5'并且值的类型也是字符串。这个问题的要求是我不希望JS在我需要之前操作我的数据。如果确实如此,那么可能还有一种方法可以获得我存储/写入的确切值。

y的测试值也可以视为1023e51023e+51023e+510230e+5



<!DOCTYPE html>
<html>
<body>

<pre>
<script>
var y = 123e5;
document.writeln(y);
document.writeln(123e5);
document.writeln(123e+5);
document.writeln(123e-5);
document.writeln(1230e-5);
</script>
</pre>

</body>
</html>
&#13;
&#13;
&#13;

我的确切目标是知道如果有任何方法我可以获得相同的值存储/写入而无需更改。那么获取原始值的确切方法是什么。

谢谢!

1 个答案:

答案 0 :(得分:3)

  

我的确切目标是知道如果有任何办法我可以得到   存储/写入的相同值没有变化。什么是准确的获取方式   我的原始价值。

不,该信息丢失。 JavaScript中的科学记法是为了更清楚地表达源代码中的一些难点数字(非常大/小)。如果您打算始终知道如何以特定表示法定义值,则需要使用字符串或附加一些额外信息来存储它。

但是,这里有一个函数可以将一个数字的尾随0转换为eN等价物,这个符号在JavaScript中的数字是如何工作的。

var convertNumToExpStr = function(number) {
  return String(number).replace(/0+$/, function(all) {
    return 'e' + all.length;
  });
};

document.body.textContent = convertNumToExpStr(123e5);