UNPKG

foop

Version:

interfaces that describe their intentions.

36 lines (35 loc) 3.11 kB
/** * @desc remainder / 1 is 0 * @since 5.0.00beta.6 * @memberOf is * * @param {number | string | *} x value to check * @return {boolean} x hasDecimals * * @func * @name hasDecimals * @alias isDecimalNumberish * * @TODO could ensure decimalNumber or isString first? (safety plus decision tree) * * {@link https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Remainder_() mozilla-arithmetic-operators-remainder} * {@link https://stackoverflow.com/questions/3803331/how-can-i-modulo-when-my-numbers-start-from-1-not-zero stack-overflow-modulo-start-from-zero} * @see {@link mozilla-arithmetic-operators-remainder} * @see {@link stack-overflow-modulo-start-from-zero} * @see is/validIndex * * @example * * hasDecimals(1) //=> false * hasDecimals(Number(1)) //=> false * hasDecimals(NaN) //=> false * hasDecimals(new Number(1)) //=> false * hasDecimals('') //=> false * hasDecimals('100') //=> false * * hasDecimals('100.10') //=> true * hasDecimals(100.1) //=> true * */ module.exports = function (x) { return x % 1 === 0; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzRGVjaW1hbHMuanMiLCJzb3VyY2VzIjpbImhhc0RlY2ltYWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2MgcmVtYWluZGVyIC8gMSBpcyAwXG4gKiBAc2luY2UgNS4wLjAwYmV0YS42XG4gKiBAbWVtYmVyT2YgaXNcbiAqXG4gKiBAcGFyYW0ge251bWJlciB8IHN0cmluZyB8ICp9IHggdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHggaGFzRGVjaW1hbHNcbiAqXG4gKiBAZnVuY1xuICogQG5hbWUgaGFzRGVjaW1hbHNcbiAqIEBhbGlhcyBpc0RlY2ltYWxOdW1iZXJpc2hcbiAqXG4gKiBAVE9ETyBjb3VsZCBlbnN1cmUgZGVjaW1hbE51bWJlciBvciBpc1N0cmluZyBmaXJzdD8gKHNhZmV0eSBwbHVzIGRlY2lzaW9uIHRyZWUpXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL09wZXJhdG9ycy9Bcml0aG1ldGljX09wZXJhdG9ycyNSZW1haW5kZXJfKCkgbW96aWxsYS1hcml0aG1ldGljLW9wZXJhdG9ycy1yZW1haW5kZXJ9XG4gKiB7QGxpbmsgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzgwMzMzMS9ob3ctY2FuLWktbW9kdWxvLXdoZW4tbXktbnVtYmVycy1zdGFydC1mcm9tLTEtbm90LXplcm8gc3RhY2stb3ZlcmZsb3ctbW9kdWxvLXN0YXJ0LWZyb20temVyb31cbiAqIEBzZWUge0BsaW5rIG1vemlsbGEtYXJpdGhtZXRpYy1vcGVyYXRvcnMtcmVtYWluZGVyfVxuICogQHNlZSB7QGxpbmsgc3RhY2stb3ZlcmZsb3ctbW9kdWxvLXN0YXJ0LWZyb20temVyb31cbiAqIEBzZWUgaXMvdmFsaWRJbmRleFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGhhc0RlY2ltYWxzKDEpICAgICAgICAgICAgIC8vPT4gZmFsc2VcbiAqICBoYXNEZWNpbWFscyhOdW1iZXIoMSkpICAgICAvLz0+IGZhbHNlXG4gKiAgaGFzRGVjaW1hbHMoTmFOKSAgICAgICAgICAgLy89PiBmYWxzZVxuICogIGhhc0RlY2ltYWxzKG5ldyBOdW1iZXIoMSkpIC8vPT4gZmFsc2VcbiAqICBoYXNEZWNpbWFscygnJykgICAgICAgICAgICAvLz0+IGZhbHNlXG4gKiAgaGFzRGVjaW1hbHMoJzEwMCcpICAgICAgICAgLy89PiBmYWxzZVxuICpcbiAqICBoYXNEZWNpbWFscygnMTAwLjEwJykgICAgICAvLz0+IHRydWVcbiAqICBoYXNEZWNpbWFscygxMDAuMSkgICAgICAgICAvLz0+IHRydWVcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0geCA9PiB4ICUgMSA9PT0gMFxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxVQUFBLENBQUMsQ0FBQSxDQUFDLEFBQUcsU0FBQSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBQTsifQ==