function Scale(setting) {
	        this._setting = setting || {};

	        /**
	         * Extent
	         * @type {Array.<number>}
	         * @protected
	         */
	        this._extent = [Infinity, -Infinity];

	        /**
	         * Step is calculated in adjustExtent
	         * @type {Array.<number>}
	         * @protected
	         */
	        this._interval = 0;

	        this.init && this.init.apply(this, arguments);
	    }
@param {number} data
@param {Object} [opt]
@param {number|string} [opt.precision] If 'auto', use nice presision.
@param {boolean} [opt.pad] returns 1.50 but not 1.5 if precision is 2.
@return {string}