1
long double
を使用すると、double
より精度が悪くなります。 3.14159265358979323846264L
long double const
をソースコードで記述するとよいですか、L
以外のものを追加する必要がありますか?精度が長いdouble doubleより悪い
EDIT 私はこの問題を解決しました。アルゴリズムをより正確に変更します。
long double
を使用すると、double
より精度が悪くなります。 3.14159265358979323846264L
long double const
をソースコードで記述するとよいですか、L
以外のものを追加する必要がありますか?精度が長いdouble doubleより悪い
EDIT 私はこの問題を解決しました。アルゴリズムをより正確に変更します。
あなたの精度は悪くありません。
何が起こっているのかは、数値をプリントアウトすると、ストリームライブラリが表示された値を切り捨ててしまうことです。特定の精度を得るには、std :: setprecisionを使用します。
double x = 1.0/3;
long double y = 1.0/6;
// Prints out the precision
std::cout << "Limit: " << std::numeric_limits<double>::digits10 << "\n";
std::cout << "Limit: " << std::numeric_limits<long double>::digits10 << "\n";
// prints the numbers with max precision.
std::cout << std::setprecision(std::numeric_limits<double>::digits10) << x << "\n";
std::cout << std::setprecision(std::numeric_limits<long double>::digits10) << y << "\n";
どのプラットフォーム/アーキテクチャ/コンパイラですか?実際に何を観察しましたか? – tenfour
いいえ、「L」は正しいです。 – trojanfoe
あなたはもっと自分自身を説明する必要があります。 doubleを使用するコード、long doubleを使用するコード、それぞれの結果、および結果が間違っていると思われる理由を示してください。 –