-1
現在、C++を使用している場合、次の操作20 /(10.0/6)の結果が12(double)になるのはなぜかと思います。 10.0はdouble、20と6は整数です。 (10.0/6)の結果は1.66になります.6が最初にdoubleに変換されるからです。しかし、なぜ20/1.66、次に12、12.05ではないのですか?部門の型変換
サンプルプログラム:
#include <iostream>
using namespace std;
int main()
{
cout << "20/(10.0/6): " << (20/(10.0/6)) << endl;
return 0;
}
サンプル・セッション(GCC、cygwinの、Windowsの10から64ビット):
$ echo -e '#include <iostream>
> using namespace std;
> int main()
> {
> cout << "20/(10.0/6): " << (20/(10.0/6)) << endl;
> return 0;
> }
> ' > test-div.cc
$ g++ -o test-div test-div.cc
$ ./test-div.exe
20/(10.0/6): 12
結果を*チェック*しますか? 'int'変数に代入していますか? –
'(10.0/6)'は実際には '1.6666666666666667'(ほとんどのシステムで)です。精度が高い場合、除算の結果は実際には '11.99999999999999976'で、' double'に格納されたときに '12.0'に丸められます。 –
あなたの研究を実証するためのサンプルコードを投稿してください。なぜ結果は12だと思いますか? –