UNPKG

maycur-business

Version:

maycur business react components of web

62 lines (41 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = dec2bin; var _rept = _interopRequireDefault(require("./rept")); var _error = require("./error"); var _isnan = _interopRequireDefault(require("./isnan")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // Copyright 2015-2018 FormBucket LLC // based on https://github.com/sutoiku/formula.js/blob/mast../src/engineering.js function dec2bin(input, places) { // exit if input is an error if (input instanceof Error) { return input; } // cast input to number var number = parseInt(input); if (!/^-?[0-9]{1,3}$/.test(number) || (0, _isnan["default"])(number)) { return _error.ERRORTYPES.value; } // Return error.if number is not decimal, is lower than -512, or is greater than 511 if (number < -512 || number > 511) { return _error.ERRORTYPES.num; } // Ignore places and return a 10-character binary number if number is negative if (number < 0) { return "1" + (0, _rept["default"])("0", 9 - (512 + number).toString(2).length) + (512 + number).toString(2); } // Convert decimal number to binary var result = parseInt(number, 10).toString(2); // Return binary number using the minimum number of characters necessary if places is undefined if (typeof places === "undefined") { return result; } else { // Return error.if places is nonnumeric if (!/^-?[0-9]{1,3}$/.test(places) || (0, _isnan["default"])(places)) { return _error.ERRORTYPES.value; } // Return error.if places is negative if (places < 0) { return _error.ERRORTYPES.num; } // Truncate places in case it is not an integer places = Math.floor(places); // Pad return value with leading 0s (zeros) if necessary (using Underscore.string) return places >= result.length ? (0, _rept["default"])("0", places - result.length) + result : _error.ERRORTYPES.num; } }