bool型変数の値の表示を0/1 -> True/Flaseに切り替えたい場合
C++は下記boolalpha/notboolalphaマニュピレーターを使用することでbool型変数の表示方式を切り替えることができる
#include <iostream> using namespace std; int main() { //cout << boolalpha; bool equal {false}; int num1 {0}; int num2 {1}; equal = num1 == num2; cout << equal << endl; return 0; }
上記の場合、何もしていないので結果は0 (false)と表示された。
0/1のどっちがTrue/False?とわからなくなる場合もあるし、わかりやすくしたい場合は
cout << boolalpha;
の部分をコメントアウトする。
そうすれば、ちゃんとFalseと表示されるのでわかりやすい。
数値比較時の注意点
double型などの小数点を含む数値を比較する場合、注意が必要な場合がある。 例えば上記コードで
double db1 {10.0}; double db2 {9.9999999999999999999};
などを比較した場合、結果はTrueとなるので注意。
*ちなみに、9.999999999999999まではfalseと表示された。
double型は少数桁15まではOKなのか?