diff --git a/src/constants/numerical.js b/src/constants/numerical.js index 5de0d828c64..e7e0a4febfe 100644 --- a/src/constants/numerical.js +++ b/src/constants/numerical.js @@ -15,7 +15,7 @@ module.exports = { * to avoid glitches: Make sure that even when you multiply it by the * number of pixels on a giant screen it still works */ - FP_SAFE: Number.MAX_VALUE / 10000, + FP_SAFE: Number.MAX_VALUE * 1e-4, /* * conversion of date units to milliseconds diff --git a/src/lib/index.js b/src/lib/index.js index ab21d11cad1..e696a2068ab 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -5,7 +5,8 @@ var utcFormat = require('d3-time-format').utcFormat; var isNumeric = require('fast-isnumeric'); var numConstants = require('../constants/numerical'); -var FP_SAFE = numConstants.FP_SAFE; +var MAX_SAFE = numConstants.FP_SAFE; +var MIN_SAFE = -MAX_SAFE; var BADNUM = numConstants.BADNUM; var lib = module.exports = {}; @@ -166,8 +167,7 @@ lib.cleanNumber = require('./clean_number'); lib.ensureNumber = function ensureNumber(v) { if(!isNumeric(v)) return BADNUM; v = Number(v); - if(v < -FP_SAFE || v > FP_SAFE) return BADNUM; - return isNumeric(v) ? Number(v) : BADNUM; + return (v > MAX_SAFE || v < MIN_SAFE) ? BADNUM : v; }; /**