問題タブ [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してパフォーマンスに焦点を当てるだけの場合、主張は本当に正しいのでしょうか。

時々「短絡」を利用できるので、2番目のアプローチは実際にはもっと速いかもしれないように私には思えます。しかし、それでは、私は何を知っていますか?!

0 投票する
1 に答える
219 参照

scala - Shorthand arithmetic operators return different results in Scala - EG: 3 + 2 != 3.+(2)

Possible Duplicate:
Scala operator oddity

I'm very new to Scala and I read that in this language everything is an Object, cool. Also, if a method has only 1 argument, then we can omit the '.' and the parentesis '( )', that's ok.

So, if we take the following Scala example: 3 + 2, '3' and '2' are two Int Objects and '+' is a method, sounds ok. Then 3 + 2 is just the shorthand for 3.+(2), this looks very weird but I still get it.

Now let's compare the following blocks on code on the REPL:

What's going on here? Why does the explicit syntax return a Double while the shorthand returns an Int??

0 投票する
2 に答える
1975 参照

c++ - Charは算術型ですか?

を使用してMatrixクラスを作成しました

テンプレートタイプが算術タイプであるかどうかを確認します。だから私は

そしてそれは動作します。static_assert関数はchar型では呼び出されません。正常ですか?charは算術型のように見えますか?

0 投票する
2 に答える
252 参照

php - What else does round() do besides rounding a number?

I just "fixed" a bug in the following lines of PHP:

by adding those lines:

The result for the former block is "0000000109108", while that of the second one is "0000000109109", which is correct.

Note that I added both lines to be able to view each step in the debugger separately. It also works if I skip the first line, thus writing:

So, apparently, the round() function does something invisible to the value that makes it work differently with sprintf(). What is it?

Were this a proper language, I would probably know by looking at the data types. Here, I don't even know what they are.

0 投票する
4 に答える
1679 参照

sql - SQLServer2008の数式の結果を変更する追加の括弧

他のすべての言語(一般に算術エンジン)では、同じ優先順位の演算子を括弧で囲んでも、結果に影響はありません。しかし最近、テストプロジェクトで、MSSQLサーバーがそのような場合に結果を変更することに気づきました。以下のクエリをご覧になり、アイデア(またはSQL Server管理の設定)または動作を説明するMSDNの記事へのリンクがあればお知らせください。

結果

私にとって、最初の2つは239.675を返し、ラウンドは239.68を返すはずです。

0 投票する
1 に答える
113 参照

ruby - ACMプログラミング-Arithmetica1.0-追加の演算子はありますか?

このフォーラムの誰かがACMプログラミングの問題を解決しようとしましたかhttp://acm.mipt.ru/judge/problems.pl?browse=yes&problem=024?これはACMMIPTのより単純な問題の1つであり、目標は+、-、*および括弧で構成される式を評価することです。明らかに単純であるにもかかわらず、テストケース式の1つに問題に記述されていない演算子が含まれているため、ソリューションを受け入れることができませんでした。除算('/')のサポートも追加しましたが、それも役に立ちませんでした。他にどのようなオペレーターをサポートする必要があるかについてのアイデアはありますか?参考までに、私のプログラムは、スペースが問題にならないように、処理する前に入力からすべての空白を削除します。問題に記載されていないが、世話をする必要があるものはありますか?

0 投票する
1 に答える
94 参照

math - 引き算の順番は?

これは無知な質問かもしれませんし、奇妙な質問かもしれません。

私の質問は、このコードが機能しない理由です:

ただし、このコードは機能します。

2 つのコードの違いは、最初の例では、位置関数を呼び出す前に、最初に一部 (オブジェクトの速度) を減算していることです。このコードを実行すると、軸上で 1 ではなく 10 が移動します。Y 軸のサイズは 10 を超えているため、実際には独自の座標を減算していません。

ただし、コードの 2 番目の部分では、位置関数を呼び出した後、最終的に速度を減算しています。2 番目のコードでは、オブジェクトが 1 ピクセル (速度の整数値) 移動します。

私が何をしようとしているのか疑問に思われる方のために、これらは私の openGL ゲームのコントロールです。物を動かすためのものです。

記録のために、これは重要な質問ではありません。私のコードは機能します。なぜそれがそのように機能するのか、私は単純に興味があります。

0 投票する
22 に答える
393390 参照

bash - bashで浮動小数点演算を使用するにはどうすればよいですか?

0Bashスクリプトで2つの画像幅を分割しようとしていますが、結果としてbashが表示されます。

私は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小数ビットの数はどこにありますか。その式は数学的に次のように変換できます。

整数のオーバーフローを考慮した場合、この変換では同じ動作にはなりませんが。私のライブラリのユーザーは、おそらく数学的な同等性に関心があり、むしろ縮小版(おそらく式テンプレートを通じて提供される)を持っているでしょう。

さて、問題は次のとおりです。動作が厳密に同じではない場合でも、オプティマイザーはあえて最適化自体を実行しますか?そのような最適化を気にする必要がありますか?このような最適化は簡単ではないことに注意してください。実際には、これらの最適化を実際に行う場合、固定小数点演算を使用しているときにビットシフトを行う必要はほとんどありません。