0
私はC++で次の式を評価しようとしています。 Visual Studio(現在のリリース)を使用しています。私はプログラムを実行するときこの式が正しく評価されないのはなぜですか?
#define _USE_MATH_DEFINES
#include <math.h>
#include <iostream>
std::cout << (1.686 * 1000/(4/3)/M_PI/(pow(0.015, 3))/3340);
私も試してみた:私はWolframAlphaを使用する場合
47608.8
式がに評価されるのに対し式の各部分を分解して、 "pow()"関数が正しく動作しているかどうか、またはM_PIが正確であるがすべてがcであるように見えるかどうかをチェックする私はすべてを一度に評価するまで一貫しています。
私には何かがありません。私は間違った答えを得ていますか?
私はかなり長い間このコードを見てきましたが、何が起こっているのか分かりません。私はある種の精密誤差かもしれないと思っていますか?
C++で '4/3'が' 1 'であるため – vu1p3n0x
はい!ありがとう、私はばかげています。私はしばらくの間プログラムしていないし、私は4/3のような単純なものを正しいと仮定した。 –
4と3は整数なので、整数除算が得られます。整数除算では、3で割った4の正解は* 1、残りは1です。 –