bar*_*lop -2 javascript math operator-precedence
我被教导在数学中我们评估事物,首字母缩略词BODMAS Brackets,Orders(powers),Division,Multiplication,Addition,Subtraction.
我理解在Javascript中,*并且/具有相同的优先级.+也-做.并且使用左关联性.
从我能想到的几个例子来看,它似乎同样有效,产生与BODMA相同的结果.
看起来在数学规则的实际情况中,首先进行加法或减法并不重要.是否可以在5-2 + 3之前完成附加或减法可能很重要.而对于除法和乘法,似乎只有一个问题,当除法时,除了9/3*4 必须首先进行除法.并且Javascript在该实例中首先执行.
但也许有一个例子可以打破它!它给标准数学带来了不同的结果.
Javascript可以打破逻辑数学规则吗?
最新情况:
为了回答自己,在数学时,人们说,PEDMAS D和M优先级相同,从左到右完成.并且同上A和S.你说他们是左联想的,即暗示括号的地方.因此,编程语言"实现PEDMAS"的优先级/优先级,DM和AS是左关联的,完全遵循PEDMAS规则.因此,如果有任何数学规则的破坏,则不是来自M,D,A,S的相关性,这与(常规)数学相同.此外,在数学中,一元减去这里是 - PEUDMAS所以-5 ^ 2 = - (5 ^ 2)= - 25.指数优先于一元减去.虽然javascript可能正确.显然,javascript破坏规则中的浮点,如某些答案中所示,尽管这不是我想到的,因为我的想法纯粹是PEDMAS,但似乎括号与浮点数有所不同,他们不应该在那里在正常的数学中,正如我接受的答案所示.
唯一的问题是浮点数,其中一个除法的近似值非常大.一个实际的例子是,这将始终警告错误:
var a = 0.1;
var b = 0.2;
var c = 0.3;
if((a+b)+c == a+(b+c))
alert("true");
else
alert("false");
Run Code Online (Sandbox Code Playgroud)
所以基本上问题在于Number对象,但没有实现理论数学.作为一个程序员,你可能理解前后增量的差异和运算符的顺序,所以我真的不明白为什么你给出9/3*4了程序员逻辑适用的例子,并且实际数学很冗长.
最后你寻求的答案(可能只是出于好奇)是你所知道的数学的实际逻辑在JavaScript中没有改变,只是来自这种语言根源的一些错误仍然困扰着我们今天.
| 归档时间: |
|
| 查看次数: |
3448 次 |
| 最近记录: |