diff options
Diffstat (limited to 'node_modules/locutus/php/bc/bcdiv.js')
-rw-r--r-- | node_modules/locutus/php/bc/bcdiv.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/node_modules/locutus/php/bc/bcdiv.js b/node_modules/locutus/php/bc/bcdiv.js new file mode 100644 index 0000000..1cbcd79 --- /dev/null +++ b/node_modules/locutus/php/bc/bcdiv.js @@ -0,0 +1,44 @@ +'use strict'; + +module.exports = function bcdiv(leftOperand, rightOperand, scale) { + // discuss at: http://locutus.io/php/bcdiv/ + // original by: lmeyrick (https://sourceforge.net/projects/bcmath-js/) + // example 1: bcdiv('1', '2') + // returns 1: '0' + // example 2: bcdiv('1', '2', 2) + // returns 2: '0.50' + // example 3: bcdiv('-1', '5', 4) + // returns 3: '-0.2000' + // example 4: bcdiv('8728932001983192837219398127471', '1928372132132819737213', 2) + // returns 4: '4526580661.75' + + var _bc = require('../_helpers/_bc'); + var libbcmath = _bc(); + + var first, second, result; + + if (typeof scale === 'undefined') { + scale = libbcmath.scale; + } + scale = scale < 0 ? 0 : scale; + + // create objects + first = libbcmath.bc_init_num(); + second = libbcmath.bc_init_num(); + result = libbcmath.bc_init_num(); + + first = libbcmath.php_str2num(leftOperand.toString()); + second = libbcmath.php_str2num(rightOperand.toString()); + + result = libbcmath.bc_divide(first, second, scale); + if (result === -1) { + // error + throw new Error(11, '(BC) Division by zero'); + } + if (result.n_scale > scale) { + result.n_scale = scale; + } + + return result.toString(); +}; +//# sourceMappingURL=bcdiv.js.map
\ No newline at end of file |