ちょっとしたテストプログラム:
#include <iostream>
const float TEST_FLOAT = 1/60;
const float TEST_A = 1;
const float TEST_B = 60;
const float TEST_C = TEST_A / TEST_B;
int main()
{
std::cout << TEST_FLOAT << std::endl;
std::cout << TEST_C << std::endl;
std::cin.ignore();
return 0;
}
結果 :
0
0.0166667
VisualStudio2008および2010でテスト済み。
- 私は他のコンパイラーに取り組み、よく覚えていれば、最初の結果を2番目の結果のようにしました。今、私の記憶は間違っている可能性がありますが、TEST_FLOATはTEST_Cと同じ値を持つべきではありませんか?そうでない場合、なぜですか?
- TEST_C値はコンパイル時または実行時に解決されますか?私はいつも前者を想定していましたが、それらの結果を見ると、いくつか疑問があります...