NumberController = function(object, property, params) {

    NumberController.superclass.call(this, object, property);

    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(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

@member dat.controllers