Comparing version 1.1.0 to 1.1.1
@@ -12,11 +12,24 @@ // Decimath | ||
static fromNumber(number) { | ||
let power = 0; | ||
while (number % 1 !== 0) { | ||
power++; | ||
number = number * 10; | ||
if (number instanceof BigNumberClass) return number; | ||
if (number instanceof String || typeof number === "string") { | ||
number = Number(number); | ||
} | ||
return new BigNumberClass(number, power); | ||
let power = getPowerRequiredToMakeWhole(number); | ||
let bigNumber = new BigNumberClass(number * (10 ** power), power); | ||
if (bigNumber.valueOf() !== number) { | ||
// Attempt Repair | ||
bigNumber.forgetAfterPrecision(number.toString().replace(/[^0-9]/g, '').length); | ||
} | ||
return bigNumber; | ||
} | ||
forgetAfterPrecision(precision) { | ||
this.integer = this.integer.toPrecision(precision); | ||
this.tidyZeros(); | ||
} | ||
setPower(power) { | ||
@@ -122,4 +135,20 @@ if (power < this.power) return false; | ||
function getPowerRequiredToMakeWhole(number) { | ||
number = number.toString(); | ||
number = number.split("."); | ||
if (number.length > 1) { | ||
return number[1].length; | ||
} else { | ||
return 0; | ||
} | ||
} | ||
function BigNumber(number) { | ||
return BigNumberClass.fromNumber(number); | ||
let bigNumber = BigNumberClass.fromNumber(number); | ||
console.log(bigNumber); | ||
if (bigNumber.valueOf() !== number) { | ||
throw new Error("This number wasn't cast properly. This is a problem with Decimath. Please Report it Here: https://github.com/Snaddyvitch-Dispenser/decimath/issues"); | ||
} | ||
return bigNumber; | ||
} | ||
@@ -126,0 +155,0 @@ |
{ | ||
"name": "decimath", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "Small, Simple library for Precise Decimal Calculations", | ||
"main": "decimath.js", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\"" | ||
"test": "node decimath.test.js" | ||
}, | ||
@@ -9,0 +9,0 @@ "repository": { |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
7385
5
143
0