#include <iostream>
#include <cmath>
using namespace std;
int main(){
float minVal = pow(2,-149); // set to smallest float possible
float nextCheck = ((float)((minVal/2.0f))); // divide by two
bool isZero = (static_cast<float>(minVal/2.0f) == 0.0f); // this thing evaluates to false when it really shouldn't...!?
bool isZero2 = (nextCheck == 0.0f); // this evaluates to true
cout << nextCheck << " " << isZero << " " << isZero2 << endl;
// this outputs 0 0 1
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewoKICBmbG9hdCBtaW5WYWwgPSBwb3coMiwtMTQ5KTsgLy8gc2V0IHRvIHNtYWxsZXN0IGZsb2F0IHBvc3NpYmxlCiAgCiAgZmxvYXQgbmV4dENoZWNrID0gKChmbG9hdCkoKG1pblZhbC8yLjBmKSkpOyAvLyBkaXZpZGUgYnkgdHdvCiAgYm9vbCBpc1plcm8gPSAoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1pblZhbC8yLjBmKSA9PSAwLjBmKTsgLy8gdGhpcyB0aGluZyBldmFsdWF0ZXMgdG8gZmFsc2Ugd2hlbiBpdCByZWFsbHkgc2hvdWxkbid0Li4uIT8KICBib29sIGlzWmVybzIgPSAobmV4dENoZWNrID09IDAuMGYpOyAvLyB0aGlzIGV2YWx1YXRlcyB0byB0cnVlCgogIGNvdXQgPDwgbmV4dENoZWNrIDw8ICIgIiA8PCBpc1plcm8gPDwgIiAiIDw8IGlzWmVybzIgPDwgZW5kbDsKICAvLyB0aGlzIG91dHB1dHMgMCAwIDEKICAKICByZXR1cm4gMDsKCn0=