问题标签 [arithmetic-expressions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3751 浏览

c - 算术与布尔运算

我在某个论坛遇到过这段代码:

if ( a * b * c * d == 0 ) ....

业主声称这比

if (a == 0 || b == 0 || c == 0 || d == 0)

这些变量定义为:

int a, b, c, d;

并且它们的绝对值保证小于等于100。(所以我们可以忽略溢出的可能性)

如果我们只是忽略readability并只关注性能,那么这种说法真的正确吗?

在我看来,第二种方法实际上可能更快,因为您有时可以利用“短路”。但是,我知道什么?!

0 投票
1 回答
219 浏览

scala - 速记算术运算符在 Scala 中返回不同的结果 - EG: 3 + 2 != 3.+(2)

可能的重复:
Scala 运算符怪异

我对 Scala 很陌生,我读到在这种语言中,一切都是对象,很酷。此外,如果一个方法只有 1 个参数,那么我们可以省略 '.' 和双亲'()',没关系。

因此,如果我们采用以下 Scala 示例:3 + 2'3' 和 '2' 是两个IntObjects 并且 '+' 是一个方法,听起来不错。然后3 + 2只是 的简写3.+(2),这看起来很奇怪,但我还是明白了。

现在让我们比较以下代码块REPL

这里发生了什么?为什么显式语法返回 aDouble而简写返回一个Int??

0 投票
2 回答
1975 浏览

c++ - Char是算术类型?

我创建了一个矩阵类,使用

检查模板类型是否为算术类型。所以我尝试了

它有效。不使用 char 类型调用 static_assert 函数。这是正常的?char 被视为算术类型?

0 投票
2 回答
252 浏览

php - 除了对数字进行四舍五入之外,round() 还能做什么?

我只是“修复”了以下 PHP 行中的一个错误:

通过添加这些行:

前一个块的结果是"0000000109108",而第二个块的结果是"0000000109109",这是正确的。

请注意,我添加了这两行以便能够分别查看调试器中的每个步骤。如果我跳过第一行,它也可以工作,因此写:

因此,显然,该round()函数做了一些对值不可见的事情,使其与sprintf(). 它是什么?

如果这是一种正确的语言,我可能会通过查看数据类型来知道。在这里,我什至不知道它们是什么。

0 投票
4 回答
1679 浏览

sql - SQL Server 2008中公式的额外括号更改结果

在所有其他语言(通常是算术引擎)中,在相同优先级的运算符周围放置一组额外的括号不会影响结果。但最近在一个测试项目中,我注意到 MS SQL 服务器在这些情况下改变了结果。请查看下面的查询,如果您有任何想法(或 SQL Server 管理中的设置)或任何指向 MSDN 文章的链接来解释该行为,请告诉我。

结果

对我来说,他们中的前两个应该返回 239.675,回合应该返回 239.68。

0 投票
1 回答
113 浏览

ruby - ACM 编程 - Arithmetica 1.0 - 任何其他运算符?

本论坛中是否有人尝试解决 ACM 编程问题http://acm.mipt.ru/judge/problems.pl?browse=yes&problem=024?这是 ACM MIPT 中较简单的问题之一,目标是评估由 +、-、* 和括号组成的表达式。尽管看起来很简单,但我的解决方案仍然无法被接受,显然是因为其中一个测试用例表达式有一个未在问题中说明的运算符。我什至添加了对除法 ('/') 的支持,但这也无济于事。关于需要支持哪些其他运营商的任何想法?仅供参考,我的程序会在处理之前从输入中删除所有空格,这样空格就不会成为问题。问题中没有说明但需要注意的事项?

0 投票
1 回答
94 浏览

math - 减法运算顺序?

这可能是一个没有受过教育的问题 - 或者是一个奇怪的问题。

我的问题是为什么这段代码不起作用:

但是,此代码确实有效:

两个代码的区别在于,在第一个例子中,我在调用位置函数之前先减去了一部分(物体的速度)。当我运行这段代码时会发生什么,它并没有在轴上移动 1,而是移动 10。Y 轴的大小在 10 以上,所以我实际上并没有减去它自己的坐标。

但是,在第二段代码中,在调用了我的位置函数之后,我最终减去了速度。第二段代码发生的情况是对象移动了一个像素(速度的整数值)。

对于那些想知道我在做什么的人,这些是我的 openGL 游戏的控件。是用来移动物体的。

并且为了记录,这不是一个重要的问题。我的代码确实有效。我只是好奇为什么它会这样工作。

0 投票
22 回答
393390 浏览

bash - 如何在 bash 中使用浮点运算?

我试图在 Bash 脚本中划分两个图像宽度,但 bash 给了我0结果:

我确实研究了 Bash 指南,我知道我应该bc在他们使用的互联网上的所有示例中使用bc。在echo我试图把同样的东西放在我的,SCALE但它没有用。

这是我在教程中找到的示例:

我怎样才能让 Bash 给我一个浮点数0.5

0 投票
3 回答
198 浏览

php - 不准确的计算(四舍五入?) - PHP

编辑:问题已解决

我正在尝试移植一种流行的评分算法,该算法将 Counter-Strike 比赛中的一些统计数据分析到 PHP 脚本中。该系统的概要可以在下面的链接中找到(新闻帖子的底部): http ://www.hltv.org/?pageid=242&eventid=0

无论如何,所以我已经在 PHP 中设置了所有内容,并且我有理由确定一切都是正确的。为了计算的目的,假设:

这是我的代码:

问题是 $killRating、$survivalRating 和 $roundsWithMultipleKillsRating 在 PHP 脚本中似乎总是返回 1,而如果我自己手动计算它们,它们是不同的。例如,如果我自己计算 $killRating,我得到 1.5789 等,但 PHP 返回“1”。

我该怎么做才能解决这个问题?

非常感谢。

0 投票
1 回答
1202 浏览

c++ - 算术运算和编译器优化

我正在考虑一个定点算术库,为了决定库本身(通过表达式模板)应该完成多少优化,我开始质疑优化器已经完成了多少。以下面的例子为例:

现在,在这个函数中,该类的典型实现FixedPoint将导致

其中N是小数位数。该表达式在数学上可以转换为:

即使当您考虑整数溢出时,这种转换不会导致相同的行为。我的库的用户可能会关心数学等价性,并且宁愿使用简化版本(可能通过表达式模板提供)。

现在,问题是:优化器是否敢自己进行优化,即使行为并不严格相同?我应该为这样的优化而烦恼吗?请注意,此类优化并非微不足道。实际上,如果您确实进行了这些优化,那么当您使用定点算术时,您很少需要进行任何位移。