0

ほとんどの場合、非常に単純な質問です。回答を理解しやすいものにしてください。私はまだこれにかなり慣れていません。

私は小さなアプリを作成していますが、いくつかの計算に累乗を使用する必要があります。少し調査した後、cmath で pow 関数を見つけ、プレイしました。最後に、私はこれを思いついた、それは動作します:

#include <iostream>
#include <cmath>
using namespace std;

int main ()
{
    float dummy2, test(6.65);
    dummy2 = (float) pow((float) 3.57, test);
    cout << dummy2;

    return 0;   
}

正しい答え (4734.17) を返しますが、小数点以下 2 桁までしか返されません。できれば小数点以下5桁が欲しいです。

ここで何が間違っていましたか?間違ったデータ型 (フロート) を使用していませんか? それとも、 pow 関数に含まれるものは何でも 2dp のみを使用するという制限ですか?

この精度が必要なのは4つまたは5つの合計だけになるため、必要な値で定数を定義するだけでよいのですが、プログラムに計算させることが可能であれば、それは素晴らしいことです.

ありがとう

4

2 に答える 2

6

私はfbinderが言うように行い、より高い精度のためにDoublesを使用します。問題を解決するには、CスタイルとC++スタイルの2つのオプションがあります。

Cスタイル

#include <cstdio>
printf("%.5f", dummy2);

C++スタイル

#include <iomanip>
std::cout << setprecision(5) << dummy2 << std::endl;

また

std::cout.precision(5);
std::cout << dummy2 << std::endl;
// continue to use cout to output 5 decimal places
于 2009-04-27T23:07:18.033 に答える
3

精度を高めるには、double を使用する必要があります。float の 7 桁に対し、double の精度は 15 桁です。

于 2009-04-27T22:52:29.053 に答える