問題タブ [cmath]
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.
c++ - ブール値を実行しながらORを実行する方法について混乱しています。"||" それは何らかの理由で私にはうまくいきません
これが私のコードです。ユーザーが「はい」または「はい」と入力した場合に if ステートメントが機能するようにします。|| 取り出すとき || 「はい」私のプログラムは正常に動作し、ユーザーが「はい」と入力すると動作します。私は自分のプログラムをより良くしたいと思っていました。また、彼らが「はい」と入力したときに機能するようにしたかったのです。誰かがこれを理解するのを手伝ってくれますか? ありがとう!
c++ - cmath std::pow関数が変数に割り当てられたときに間違った値を与える?
以下の方法は、さまざまな数値セットのグループ化から特定の数値が何回出現するかを追跡しています
私が直面している問題は、std::pow() メソッドを使用してマップのキー値を計算するときです。100 を超えるものはすべて -1 ずれています (つまり、100 が 99 になり、103 が 102 になるなど)。std::cout を使用して計算を出力すると、結果は正しいのですが、値を int 変数に代入するとすぐに -1 エラーが発生します。私はコードを何度も見直しましたが、すぐに問題が発生することはありません。この問題の原因とその理由に関する提案はありますか?
foo クラスがこの例/問題にとって重要すぎるとは思いませんが、実際に何らかの問題の原因である場合に備えて投稿します。
編集: ベクトルで Foo クラスよりも簡単なものを使用することをすぐに指摘する人もいますが、各セットに組み込む必要がある他の機能があるため、これが関連するコードをまとめるための最良の方法でした。興味のある任意の長さの整数値を表すことができるようにします (つまり、foo は 10000 を表すのと同じくらい簡単に 1 を表すことができます)。
c++ - C++ での整数の丸め
以下の式をC ++で使用しようとしていました。私は両方の変数を整数として宣言しており、それらが切り上げられることを期待していますが、切り捨てられているようです。私はこれを見てきましたが、何が間違っているのかを見つけることができないようです。どんな助けでも大歓迎です。
答えは、sector_latitude の場合は 13、sector_longitude の場合は 11 になるはずですが、コンピューターはそれぞれを 12 と 10 に切り捨てます。
compiler-construction - Visual Studio には cmath が自動的に含まれますか?
私は C++ の初心者で、今日 Hello World を書きました。
これはVisual Studioで機能し、エラーメッセージは表示されませんでしたが、追加中:
同様にうまくいきました。
しかし、オンラインの GCC コンパイラでは、前のコードは次のように返されます。
助けてください、ありがとう。
c++ - abs vs std::abs、参照は何と言っていますか?
私が話しているのは::abs()
ではなく、注意してくださいstd::abs()
cplusplus.com の Web サイトによると、 h C バージョンでabs
は動作が異なるはずです。stdlib.
<cmath>
::abs
以下は、このページからの抜粋です (ではなくを扱っていますstd::abs
)。
本当???
プログラムを新しいプラットフォームに移植するときに、これに悩まされてきました。これは、さまざまなコンパイラと標準ライブラリの実装がここで異なるためです。
これが私のサンプルプログラムです:
MSVC 2010 での結果は次のとおりです。
- MSVC 2010 ではコンパイル警告は表示されず、 math.h も
stdlib.h
:も含まれていなくmath.h
ても、プログラムはコンパイルさstdlib.h
れます。 - プログラムの出力は次のとおりです。
x=-1.5 ax=1.5
(参照によると一見正しい)
OSXでの結果は次のとおりです。
- フラグを使用しても、コンパイルの警告は発行されません
-Wall
(double から int へのキャストは通知されません)。に置き換えg++
ても結果は同じですllvm-g++
。math.h
orを含めることはcmath
、コンパイルには必要ありません。 - プログラムの出力は次のとおりです。
x=-1.5 ax=1
最後に Linux での結果:
- が含まれていない場合、プログラムはコンパイルされません (最後に、自動的
stdlib.h
に含まれない 1 つのコンパイラ)。stdlib
double -> int キャストに対してコンパイル警告は発行されません。 - プログラムの出力は次のとおりです。
x=-1.5 ax=1
ここには明確な勝者はありません。std::abs
明白な答えが「好む」であることは知っていますが::abs
、私は疑問に思います:
- cplusplus.com の Web サイトは、名前空間
abs
の外側で自動的に二重バージョンを提供する必要があると言っていますが、ここにありますか?std
- ここでは、MSVC を除いてすべてのコンパイラとその標準ライブラリが間違っています
math.h
か (サイレントに含まれています)。