#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;

}