constructor(object, property, params) {
    super(object, property);

    const _params = params || {};

    this.__min = _params.min;
    this.__max = _params.max;
    this.__step = _params.step;

    if (common.isUndefined(this.__step)) {
      if (this.initialValue === 0) {
        this.__impliedStep = 1; // What are we, psychics?
      } else {
        // Hey Doug, check this out.
        this.__impliedStep = Math.pow(10, Math.floor(Math.log(Math.abs(this.initialValue)) / Math.LN10)) / 10;
      }
    } else {
      this.__impliedStep = this.__step;
    }

    this.__precision = numDecimals(this.__impliedStep);
  }
@class Represents a given property of an object that is a number.

@extends dat.controllers.Controller

@param {Object} object The object to be manipulated
@param {string} property The name of the property to be manipulated
@param {Object} [params] Optional parameters
@param {Number} [params.min] Minimum allowed value
@param {Number} [params.max] Maximum allowed value
@param {Number} [params.step] Increment by which to change value