You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
779 B
26 lines
779 B
5 months ago
|
var helperNumberDecimal = require('./helperNumberDecimal')
|
||
|
var toNumberString = require('./toNumberString')
|
||
|
var toNumber = require('./toNumber')
|
||
|
var toFixed = require('./toFixed')
|
||
|
|
||
|
/**
|
||
|
* 减法运算
|
||
|
*
|
||
|
* @param { Number } num1 被减数
|
||
|
* @param { Number } num2 减数
|
||
|
* @return {Number}
|
||
|
*/
|
||
|
function subtract (num1, num2) {
|
||
|
var subtrahend = toNumber(num1)
|
||
|
var minuend = toNumber(num2)
|
||
|
var str1 = toNumberString(subtrahend)
|
||
|
var str2 = toNumberString(minuend)
|
||
|
var digit1 = helperNumberDecimal(str1)
|
||
|
var digit2 = helperNumberDecimal(str2)
|
||
|
var ratio = Math.pow(10, Math.max(digit1, digit2))
|
||
|
var precision = (digit1 >= digit2) ? digit1 : digit2
|
||
|
return parseFloat(toFixed((subtrahend * ratio - minuend * ratio) / ratio, precision))
|
||
|
}
|
||
|
|
||
|
module.exports = subtract
|