0

私はC言語がまったく初めてです。ここで取り上げようとしています。皆さんが私を少し助けてくれることを願っています。私が愚かなことを尋ねた場合は事前に申し訳ありませんが、この特定の質問に対する答えを実際に見つけることができませんでした. 私の英語もごめんなさい。

とにかく、以下は私にとって問題なく動作する私のコードです。

#include <stdio.h>

int main(int argc, const char * argv[])
{


// float variable named "Crit_Dmg"
float Crit_Dmg;

// give "Crit_Dmg" a value
Crit_Dmg = 11.34;


// Log it to the user
printf("Critical Damage = %f.\n", Crit_Dmg);

// Declare Float variable named "Magic_Dmg"
float Magic_Dmg;

// Give Magic_Dmg a value
Magic_Dmg = 5.48;


// Show user
printf("Magical Damage = %f.\n", Magic_Dmg);

// Declare Double variable named "T_Dmg" (Total Dmg)
double T_Dmg;

// calculation of total damage (T_Dmg)
T_Dmg = Crit_Dmg + Magic_Dmg;

// show user Totas Dmg value
printf("Total Damage = %f.\n", T_Dmg);

// end
return 0;

}

printfの結果が表示されます

Critical Damage = 11.340000.
Magical Damage = 5.480000.
Total Damage = 16.820000.
Program ended with exit code: 0

しかし、Crit_Dmg と Magic_Dmg の値を高くすると、仮数が入力どおりに不正確になります...

たとえば、私はに変更しました

Crit_Dmg = 115.34;

Magic_Dmg = 515.48;

printfは以下のように見えます

Critical Damage = 115.339996.
Magical Damage = 515.479980.
Total Damage = 630.819946.
Program ended with exit code: 0

仮数部が入力どおりに表示されないのはなぜですか? どうすれば修正できますか?

4

1 に答える 1