code: @Override
      public IntColumn asIntColumn() {
          IntArrayList values = new IntArrayList();
          for (float d : data) {
              values.add((int) d);
          }
          values.trim();
          return IntColumn.create(this.name(), values.elements());
      }
docs: Returns a new IntColumn containing a value for each value in this column, truncating if necessary.
  
  A narrowing primitive conversion such as this one may lose information about the overall magnitude of a
  numeric value and may also lose precision and range. Specifically, if the value is too small (a negative value
  of large magnitude or negative infinity), the result is the smallest representable value of type int.
  
  Similarly, if the value is too large (a positive value of large magnitude or positive infinity), the result is the
  largest representable value of type int.
  
  Despite the fact that overflow, underflow, or other loss of information may occur, a narrowing primitive
  conversion never results in a run-time exception.
  
  A missing value in the receiver is converted to a missing value in the result