jjzjj

math.sqrt

全部标签

javascript - 为什么 Math.pow(-0, -7) === -Infinity?

Math.pow(-0,x)对所有负的x计算为Infinity是否有理由,但奇数为-Infinity时除外?我的意思是:Math.pow(-0,-6);//InfinityMath.pow(-0,-7);//-InfinityMath.pow(-0,-7.33);//InfinityMath.pow(-0,-Infinity);//InfinityFiddle我知道负数的正奇次幂是负数,但这里显然不是这种情况:-7不是正指数,如果你敞开心扉,-0确实是一个数字,但它不是负数。这种行为在数学上毫无意义,我也没有看到它的实际用途或技术便利性,所以我怀疑规范必须依赖于历史/兼容性原因。有什么

javascript - 为什么 Math.cbrt(1728) 产生的结果比 Math.pow(1728, 1/3) 更准确?

在JavaScript中,Math.cbrt(1728)计算出12的精确结果。但是,看似等价的表达式Math.pow(1728,1/3)的计算结果为11.999999999999998。为什么这些结果的精度不同? 最佳答案 前面的一些一般性评论:如本seminalpaper中所述,由于有限的精度和范围限制,浮点运算与真正的数学完全不同(例如,缺乏结合性)数学上等价的表达式不是在浮点运算中计算时必然等效。计算机语言标准通常不保证任何数学函数的特定精度,或相同的误差范围在不同的数学函数之间,例如cbrt()或pow()。但为给定的提供正

javascript - Chrome : How to solve "Maximum call stack size exceeded" errors on Math. max.apply(数学,数组)

我必须找到非常大的数组的最大值和最小值。为此,我正在使用Math.max.apply(Math,my_array);Math.min.apply(Math,my_array);它在Firefox和IE上运行良好,但在Chrome上我总是得到Maximumcallstacksizeexceeded错误...我当前的数组有221954个元素,这不是我最大的。有人知道如何在Chrome上解决这个错误吗?如何优化最大值和最小值的搜索?对于那些不相信的人,请在Chrome的控制台中尝试:varxxx=[]for(vari=0;i--->RangeError:超出最大调用堆栈大小

javascript - 为什么 Math.log10 在某些系统上工作但在其他系统上返回未定义?

我编写了一个基于html5canvas的应用程序,用于将电势绘制为彩色图。我正在使用Math.log10重新缩放值,这在很多系统上运行良好(Chrome-Firefox-Opera;笔记本电脑和PC;Windows和Ubuntu;集成和专用图形)。然后我发现一台PC和一台笔记本电脑都装有Windows,但情节不起作用。错误显示Math.log10()无法作为函数调用,只是在js控制台中键入Math.log10返回未定义。我通过将Math.log10(someValue)替换为Math.log(someValue)/2.3来解决这个问题。所以我的问题是:为什么会发生这种情况,还有其他类似

javascript - 未定义条目的 Math.max 和 Math.min NaN

当将值传递给JavaScript中的Math.max或Math.min函数时,它们分别返回输入的最高值和最低值。但是,如果输入了一段未定义的数据,例如Math.max(5,10,undefined);返回的结果是NaN。有没有使用JS/jQuery解决此问题的简单方法? 最佳答案 我假设undefined实际上是一些变量。您可以将-Infinity替换为任何NaN值以确保数字。varfoo;Math.max(5,10,isNaN(foo)?-Infinity:foo);//returns10Math.min可以使用相同的概念,但In

Javascript:将 Math.sqrt 转换为 int?

我已经通过谷歌搜索(也许我看起来不够努力)但我找不到如何将Math.sqrt变成一个int。我想将Math.sqrt用于for循环,我想我需要它作为一个int,但我似乎无法弄清楚如何将结果转换为int。那我该怎么做呢?我尝试了类似于Java的东西:(int)Math.sqrt(num);但是没有用。提前致谢:) 最佳答案 根据您的特定舍入需求,使用Math.round、Math.ceil或Math.floor。“对于将Math.round、Math.ceil和Math.floor中的一个数字四舍五入为整数是更可取的,并且对于可以表示

javascript - 为什么我不能用 Javascript 写 [1,2,3].reduce(Math.max)?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowtouseMath.max,etc.ashigher-orderfunctions使用Mozilla的Javascript1.6数组“扩展”功能(map、reduce、filter等),为什么以下内容会按预期工作:varmax=[1,2,3].reduce(function(a,b){returnMath.max(a,b);});但以下不起作用(它产生NaN):varmax2=[1,2,3].reduce(Math.max);是因为Math.max是可变参数函数吗?

javascript - 如何使用 Math.round 将数字四舍五入到最接近的偶数?

请仅使用JavaScript。这是我第一次尝试自己编写JavaScript。我已经成功地操纵了friend们过去为我编写的代码,但我从未从头开始编写自己的代码,直到最近才花时间尝试理解语言本身。我正在尝试制作一个基本的文胸尺码计算器,它从用户输入中获取数字(测量值),将它们路由到一个函数中,然后将文胸尺码返回(计算)给用户。因为我对这门语言还很陌生,所以我现在只想写一个部分——“bandsize”我有一个输入字段供用户输入他们的“下胸围测量值”,我目前已将其设置为四舍五入。这按预期工作。看这里functioncalculate(){varunderbust=document.getEl

javascript - Math.floor VS Math.trunc JavaScript

背景我正在制作一个函数,该函数接收一个正数,然后将该数字四舍五入为最接近它的整数。我一直在使用Math.floor,但最近我发现Math.trunc.我知道如果给定一个正数,两者都会返回相同的值,而且它们的工作方式完全不同。我有兴趣探索这种行为。问题哪个更快?我应该使用哪一个? 最佳答案 实际上,有更多的替代方法可以从数字中删除小数点。但这是可读性和速度的折衷。根据您的需要选择合适的。如果您只需要删除小数,请始终使用trunc()或按位运算符。floor(),ceil()和round()在概念上与trunc()非常不同.数学图书馆这

javascript - Chrome 中的 Math.log2 精度发生了变化

我编写了一个JavaScript程序,它根据元素的数量计算二叉树的深度。我的程序几个月来一直运行良好,但最近我发现在Chrome和Firefox中查看网页时存在差异。特别是在Firefox上:Math.log2(8)=3但现在在Chrome中:Math.log2(8)=2.9999999999999996我的JavaScript程序最初是为了根据元素的数量来查找二叉树的深度而编写的:vartree_depth=Math.floor(Math.log2(n_elements))+1;我对这个公式做了一个简单的修改,以便它在Chrome上仍然可以正常工作:varepsilon=1.e-5;