Skip to content

Commit

Permalink
122 function compareto fails when comparing -0 and 0 (#124)
Browse files Browse the repository at this point in the history
* fix -0 and 0 compare
  • Loading branch information
royNiladri authored Jan 21, 2024
1 parent e44dc50 commit 5a47b16
Show file tree
Hide file tree
Showing 12 changed files with 49 additions and 16 deletions.
7 changes: 4 additions & 3 deletions dist/esm/big-decimal.js

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

2 changes: 1 addition & 1 deletion dist/esm/big-decimal.js.map

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions dist/node/js-big-decimal.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,11 @@ function testZero(number) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.compareTo = void 0;
var add_1 = __webpack_require__(217);
var stripTrailingZero_1 = __webpack_require__(859);
function compareTo(number1, number2) {
var _a;
var _a, _b;
var negative = false;
_a = [number1, number2].map(function (n) { return (0, stripTrailingZero_1.stripTrailingZero)(n); }), number1 = _a[0], number2 = _a[1];
if (number1[0] == '-' && number2[0] != "-") {
return -1;
}
Expand All @@ -180,7 +182,7 @@ function compareTo(number1, number2) {
number2 = number2.substr(1);
negative = true;
}
_a = (0, add_1.pad)(number1, number2), number1 = _a[0], number2 = _a[1];
_b = (0, add_1.pad)(number1, number2), number1 = _b[0], number2 = _b[1];
if (number1.localeCompare(number2) == 0) {
return 0;
}
Expand Down Expand Up @@ -208,6 +210,8 @@ function compareTo(number1, number2) {
return 0;
}
exports.compareTo = compareTo;
function checkZero(number) {
}


/***/ }),
Expand Down Expand Up @@ -631,7 +635,7 @@ function stripTrailingZero(number) {
if (number[0] == '.') {
number = '0' + number;
}
if (isNegative) {
if (isNegative && number != '0') {
number = '-' + number;
}
return number;
Expand Down
2 changes: 1 addition & 1 deletion dist/node/js-big-decimal.min.js

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions dist/web/js-big-decimal.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,11 @@ function testZero(number) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.compareTo = void 0;
var add_1 = __webpack_require__(217);
var stripTrailingZero_1 = __webpack_require__(859);
function compareTo(number1, number2) {
var _a;
var _a, _b;
var negative = false;
_a = [number1, number2].map(function (n) { return (0, stripTrailingZero_1.stripTrailingZero)(n); }), number1 = _a[0], number2 = _a[1];
if (number1[0] == '-' && number2[0] != "-") {
return -1;
}
Expand All @@ -171,7 +173,7 @@ function compareTo(number1, number2) {
number2 = number2.substr(1);
negative = true;
}
_a = (0, add_1.pad)(number1, number2), number1 = _a[0], number2 = _a[1];
_b = (0, add_1.pad)(number1, number2), number1 = _b[0], number2 = _b[1];
if (number1.localeCompare(number2) == 0) {
return 0;
}
Expand Down Expand Up @@ -199,6 +201,8 @@ function compareTo(number1, number2) {
return 0;
}
exports.compareTo = compareTo;
function checkZero(number) {
}


/***/ }),
Expand Down Expand Up @@ -622,7 +626,7 @@ function stripTrailingZero(number) {
if (number[0] == '.') {
number = '0' + number;
}
if (isNegative) {
if (isNegative && number != '0') {
number = '-' + number;
}
return number;
Expand Down
2 changes: 1 addition & 1 deletion dist/web/js-big-decimal.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package-lock.json

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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "js-big-decimal",
"version": "2.0.6",
"version": "2.0.7",
"description": "Work with large numbers on the client side. Round them off to any required precision.",
"main": "dist/node/js-big-decimal",
"types": "dist/node/big-decimal",
Expand Down
3 changes: 3 additions & 0 deletions src/compareTo.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,7 @@ describe("compareTo", function () {
it("should: 0.67, .6700 = 0", function () {
expect(compareTo("0.67", ".6700")).toBe(0);
});
it("should: -0, 0 = 0", function () {
expect(compareTo("-0", "0")).toBe(0);
});
});
6 changes: 6 additions & 0 deletions src/compareTo.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { pad } from './add';
import {stripTrailingZero} from './stripTrailingZero';

export function compareTo(number1 : string, number2 : string) {
let negative = false;
[number1, number2] = [number1, number2].map(n => stripTrailingZero(n));
if(number1[0] == '-' && number2[0] != "-"){
return -1;
}else if(number1[0] != '-' && number2[0] == '-'){
Expand Down Expand Up @@ -33,4 +35,8 @@ export function compareTo(number1 : string, number2 : string) {
}
}
return 0;
}

function checkZero(number){

}
15 changes: 15 additions & 0 deletions src/stripTrailingZero.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,21 @@ describe("stripTrailingZero", function () {
expect(stripTrailingZero("-5.50000000000000000")).toBe("-5.5");
});

// handle zeros
it("should: 0.00000 become 0", function () {
expect(stripTrailingZero("0.00000")).toBe("0");
});
it("should: -0.00000 become 0", function () {
expect(stripTrailingZero("-0.00000")).toBe("0");
});
it("should: 000 become 0", function () {
expect(stripTrailingZero("000")).toBe("0");
});
it("should: -000 become 0", function () {
expect(stripTrailingZero("-000")).toBe("0");
});


// Usage in conjugation with rounding
it("should: result of remove trailing zeroes then rounding 1.550 to 1 digit precision becomes 1.6", function () {
expect((new bigDecimal("1.550")).stripTrailingZero().round(1).getValue()).toBe("1.6");
Expand Down
2 changes: 1 addition & 1 deletion src/stripTrailingZero.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export function stripTrailingZero(number) {
if (number[0] == '.') {
number = '0' + number;
}
if (isNegative) {
if (isNegative && number != '0') {
number = '-' + number;
}
return number;
Expand Down

0 comments on commit 5a47b16

Please sign in to comment.