Skip to content

Commit

Permalink
release 1.1.6
Browse files Browse the repository at this point in the history
  • Loading branch information
camsong committed Oct 29, 2017
1 parent 81c60de commit 617462a
Show file tree
Hide file tree
Showing 4 changed files with 4,723 additions and 8 deletions.
23 changes: 18 additions & 5 deletions build/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,24 @@ function digitLength(num) {
return len > 0 ? len : 0;
}

/**
* 把小数转成整数,支持科学计数法。如果是小数则放大成整数
* @param {*number} num 输入数
*/
function float2Fixed(num) {
if (num.toString().indexOf('e') === -1) {
return Number(num.toString().replace('.', ''));
}
var dLen = digitLength(num);
return dLen > 0 ? num * Math.pow(10, dLen) : num;
}

/**
* 精确乘法
*/
function times(num1, num2) {
var num1Changed = Number(num1.toString().replace('.', ''));
var num2Changed = Number(num2.toString().replace('.', ''));
var num1Changed = float2Fixed(num1);
var num2Changed = float2Fixed(num2);
var baseNum = digitLength(num1) + digitLength(num2);
return num1Changed * num2Changed / Math.pow(10, baseNum);
}
Expand All @@ -59,8 +71,8 @@ function minus(num1, num2) {
* 精确除法
*/
function divide(num1, num2) {
var num1Changed = Number(num1.toString().replace('.', ''));
var num2Changed = Number(num2.toString().replace('.', ''));
var num1Changed = float2Fixed(num1);
var num2Changed = float2Fixed(num2);
return times(num1Changed / num2Changed, Math.pow(10, digitLength(num2) - digitLength(num1)));
}

Expand All @@ -79,4 +91,5 @@ exports.times = times;
exports.divide = divide;
exports.round = round;
exports.digitLength = digitLength;
exports.default = { strip: strip, plus: plus, minus: minus, times: times, divide: divide, round: round, digitLength: digitLength };
exports.float2Fixed = float2Fixed;
exports.default = { strip: strip, plus: plus, minus: minus, times: times, divide: divide, round: round, digitLength: digitLength, float2Fixed: float2Fixed };
1 change: 1 addition & 0 deletions build/index.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "number-precision",
"version": "1.1.5",
"version": "1.1.6",
"description": "Perform addition, subtraction, multiplication and division operations precisely using javascript",
"main": "build/index.js",
"author": "cam song",
Expand All @@ -21,7 +21,7 @@
"test": "karma start --single-run",
"tdd": "karma start --auto-watch --no-single-run",
"test-cov": "karma start --auto-watch --single-run --reporters progress,coverage",
"build": "babel src --out-dir build",
"build": "babel src --out-dir build && minify src/index.js --out-file build/index.min.js",
"clean": "rm -rf build",
"lint": "eslint src test"
},
Expand All @@ -33,6 +33,7 @@
"babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.1.18",
"babel-preset-stage-0": "^6.1.18",
"babel-minify": "^0.2.0",
"chai": "^3.4.1",
"chai-spies": "^0.7.1",
"eslint": "^1.9.0",
Expand All @@ -41,9 +42,9 @@
"isparta": "^4.0.0",
"istanbul-instrumenter-loader": "^0.1.3",
"karma": "^0.13.15",
"karma-firefox-launcher": "^1.0.0",
"karma-coverage": "^0.5.3",
"karma-coveralls": "^1.1.2",
"karma-firefox-launcher": "^1.0.0",
"karma-mocha": "^0.2.1",
"karma-sourcemap-loader": "^0.3.6",
"karma-webpack": "^1.7.0",
Expand Down
Loading

0 comments on commit 617462a

Please sign in to comment.