数字文字混淆中的 JavaScript 指数

Posted

技术标签:

【中文标题】数字文字混淆中的 JavaScript 指数【英文标题】:JavaScript exponent in Number literal confusion 【发布时间】:2019-06-18 21:08:39 【问题描述】:

也许是时候再喝杯咖啡了,但我看到了一个我没想到的奇怪问题。

我正在阅读 javascript The Good Parts,在语法部分我看到以下内容:

如果数字文字有指数部分,那么 文字是通过将 e 之前的部分乘以 10 来计算的 e之后的部分的幂。所以 100 和 1e2 是一样的 号码。

从 pg. 8 个 JavaScript:Douglas Crockford 的优秀部分。版权所有 2008 雅虎!公司,978-0-596-51774-8。

我认为 2e2 应该等于 400 是不正确的吗?

按照书上的说法,这个值不应该是(2*10)^2吗?

在我的控制台中,它显示 2e2 == 200.. 我的数学、阅读理解或其他任何东西都关闭了吗?我需要回到基础代数吗?

提前致谢。

【问题讨论】:

应该是 2 * (10^2) 2e2 = 2*10^2 - 标准scientific notation @VLAZ 只是我,还是这本书对您来说也读错了?操作顺序(至少从我在本节中读到的内容)是取 2(从“e”的左侧开始)并将其乘以 10,然后将其提升到 e 之后的部分......?我假设我只需要复习科学记数法? @user2879041 不,这绝对正确。正如我所说,2e2 = 2*10^2。运算的顺序是先幂,然后是乘法。 很公平。将关闭问题。阅读困难 【参考方案1】:

2e2 被解释为2*(10^2) 而不是(2*10)^2。前者计算为2 * 100,等于200。后者计算为20 ^ 2,这就是你得到400的原因。

【讨论】:

谢谢。这本书的唯一示例在两种情况下都评估为 100(1e2)并没有帮助【参考方案2】:

这里 e 之前的部分是 2。 e 之后的部分是 2。 10 在 e = Math.pow(10,2) 为 100 之后的部分的幂 所以将 e 之前的部分乘以 10 的 e 之后的部分的幂是2*Math.pow(10,2) = 200.

【讨论】:

以上是关于数字文字混淆中的 JavaScript 指数的主要内容,如果未能解决你的问题,请参考以下文章

在 Javascript 中查找指数的最后六位数字?

机器学习系列模型评价ROC曲线约登指数最佳阈值一个函数中实现约登指数计算并集成到ROC图中,给出默认阈值及最佳阈值下的混淆矩阵

CAD图中的数字都是动态块,数字只能在属性编辑器里修改。现在需要将块中的数值数字保存为多行文字,求高手

结构图中字体标注样式有何规定

javascript或css:如何隐藏标签内的文本中的任何数字,后跟点前缀“1.text”,“2.text”...“30.text”

探秘JavaScript中的六个字符