C++检查浮点数

Dan*_*nny 1 c++ arrays floating-point if-statement

对,我有一个浮点数组,只存储1和0.我试图只是做一个简单的测试/检查数组中的当前插槽是1它将打印出一条消息说它是1,否则,它是0.继承我的代码:

if(myArray[i] == 1)
{
    cout << "this is 1 !!!!!" << endl;
}
else
{
    cout << "this is 0 ";
}
Run Code Online (Sandbox Code Playgroud)

但这只是继续进入"其他"部分.即只打印"这是0".它有什么问题(或者我的错误是什么?:P)??

Aus*_*oke 5

很棒的链接:每个计算机科学家应该知道的浮点运算

在阅读之后,你会发现1的浮点表示不是整数值1.它很接近,但并不完全,这就是为什么你的条件总是假的.

为什么要用floats来存储布尔数据?使用bools或bitvector 数组.

编辑:我实际上无法想到任何情况下(或为什么)你将floats与文字进行比较,任何人都知道吗?