如果查看该
Math对象的v8实现,则会看到:
function MathTan(x) { return MathSin(x) / MathCos(x);}
实际上,
Math.cos(Math.PI/2)也会在Node中返回一个异常值(实际上,是异常
Math.tan结果的倒数):
> Math.cos(Math.PI/2)6.123031769111886e-17 // in Chrome, this is 0
因此,您的问题 简化 为: 为什么Math.cos(Math.PI/2)
Node <= 0.10.24中的非零值?
这很难回答。正弦和余弦的实现由名为的数学运算函数提供,该函数
TrigonometricInterpolation依赖于C
++代码生成的1800个样本值的反向查找表,该代码本身是在首次安装v8时生成的Python脚本。
但是,还值得注意的是,当前的trig查找表代码最近替换了较旧的查找表,因此,当前版本的Node可能未使用最新的trig查找表(因为新代码于11月22日到达v8中)
,2013年,但在2013年12月0.10.24版之前,从v8到Node的唯一拉动是在2013年11月11日(即更改前的11天)。Chrome可能正在使用最新代码,而当前的稳定节点正在使用其他三角代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)