Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nirvanasupermind/bigfx
BigFX is a JavaScript decimal fixed-point number library based on BigInt.
https://github.com/nirvanasupermind/bigfx
Last synced: 9 days ago
JSON representation
BigFX is a JavaScript decimal fixed-point number library based on BigInt.
- Host: GitHub
- URL: https://github.com/nirvanasupermind/bigfx
- Owner: nirvanasupermind
- License: mit
- Created: 2022-11-28T01:14:23.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-03T09:36:59.000Z (about 2 years ago)
- Last Synced: 2024-12-26T18:33:26.434Z (14 days ago)
- Language: JavaScript
- Homepage:
- Size: 20.5 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bigfx
[![npm version](https://badge.fury.io/js/bigfx.svg)](https://badge.fury.io/js/bigfx)`BigFX` is a JavaScript decimal fixed-point number library with unlimited size, based on the native `BigInt`. It supports up to 15 digits of fractional precision, and is internally stored as a `BigInt` scaled by a factor of `1e+15`. `BigFX` can work on both Node.js and the browser.
## Installation
Using NPM:
```
npm install bigfx
```On the browser:
``````
## Example
```javascript
var BigFX = require("bigfx");
console.log(new BigFX(36.9).add(45).mul(94).toFixed(6)); // 7698.600000
console.log(new BigFX(9007199254740991n).add(2).toString()); // 9007199254740993
console.log(BigFX.PI.neg().cos().toString()); // -1
```## API
* `constructor()` - Creates a `BigFX` object equal to 0
* `constructor(number)` - Creates a `BigFX` object from a number (precision may be lost)
* `constructor(bigint)` - Creates a `BigFX` object from a `BigInt`
* `constructor(bigfx)` - Creates a `BigFX` object from another `BigFX` object
* `clone()` - Returns a clone of a `BigFX` object
* `neg()` - Returns negation of a `BigFX` object
* `add(other)` - Returns addition of two `BigFX` objects (converts `other` if needed)
* `sub(other)` - Returns subtraction of two `BigFX` objects (converts `other` if needed)
* `mul(other)` - Returns multiplication of two `BigFX` objects (converts `other` if needed)
* `div(other)` - Returns division of two `BigFX` objects (converts `other` if needed)
* `mod(other)` - Returns modulo of two `BigFX` objects (converts `other` if needed)
* `and(other)` - Returns bitwise AND of two `BigFX` objects (converts `other` if needed, only works if both arguments are integers)
* `or(other)` - Returns bitwise OR of two `BigFX` objects (converts `other` if needed, only works if both arguments are integers)
* `xor(other)` - Returns bitwise XOR of two `BigFX` objects (converts `other` if needed, only works if both arguments are integers)
* `shl(other)` - Returns left-shift of two `BigFX` objects (converts `other` if needed, only works if `other` is an integer)
* `shr(other)` - Returns right-shift of two `BigFX` objects (converts `other` if needed, only works if `other` is an integer)
* `exp()` - Returns e raised to the power of a `BigFX` object
* `log()` - Returns natural logarithm of a `BigFX` object
* `pow(other)` - Returns exponentiation of two `BigFX` objects (converts `other` if needed)
* `sqrt()` - Returns the square root of a `BigFX` object
* `sin()` - Returns the sine of a `BigFX` object
* `cos()` - Returns the cosine of a `BigFX` object
* `tan()` - Returns the tangent of a `BigFX` object
* `lt(other)` - Checks if a `BigFX` object is less than another `BigFX` object
* `le(other)` - Checks if a `BigFX` object is less than or equal to another `BigFX` object
* `gt(other)` - Checks if a `BigFX` object is greater than another `BigFX` object
* `ge(other)` - Checks if a `BigFX` object is greater than or equal to another `BigFX` object
* `eq(other)` - Checks if a `BigFX` object is equal to another `BigFX` object
* `ne(other)` - Checks if a `BigFX` object is not equal to another `BigFX` object
* `toNumber()` - Converts a `BigFX` object to a number
* `toBigInt()` - Converts a `BigFX` object to a `BigInt`
* `toScaledBigInt()` - Converts a `BigFX` object to a `BigInt` scaled up by a factor of `1e+15` (the internal representation)
* `toString(radix = 10)`- Converts a `BigFX` object to a string in the specified radix
* `toFixed(fractionDigits = 0)`- Converts a `BigFX` object to a string with the specified number of fraction digits
* `toExponential()`- Converts a `BigFX` object to a string in scientific notation format
* `static ZERO`- A `BigFX` object with a value of 0
* `static ONE`- A `BigFX` object with a value of 1
* `static PI`- A `BigFX` object with a value of π
* `static E`- A `BigFX` object with a value of e
* `static random()`- Creates a `BigFX` object with a pseudo-random value between 0 and 1