
Research
PyPI Package Disguised as Instagram Growth Tool Harvests User Credentials
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Arbitrary-precision BigInteger and BigDecimal real numbers: Apache Harmony's implementation
BigDecimal for Javascript is a pure-Javascript implementation of immutable, arbitrary-precision, signed decimal numbers. BigDecimal supports decimal math with arbitrary precision.
For a limited time, we will throw in BigInteger support at no extra charge!
If this is a problem for you:
node> 0.1 + 0.2
0.30000000000000004
Then you need BigDecimal for Javascript. BigDecimal is great for arithmetic of financial information, or anything exceeding the Javascript Number
(IEEE-754 float) type. Decimal did not make the cut in the new ECMAScript standards so it’s time we got our act together.
BigDecimal works in the browser and in Apache CouchDB. See the simple BigDecimal Couch app demo to compare server-side and client-side expression evaluation.
BigDecimal is available in the NPM repository for NodeJS.
npm install bigdecimal
Now use it normally. It is exactly like the Java 1.5 BigInteger
and BigDecimal
API. See the BigDecimal documentation for information.
var bigdecimal = require("bigdecimal");
var i = new bigdecimal.BigInteger("1234567890abcdefghijklmn", 24);
console.log("i is " + i);
// Output: i is 60509751690538858612029415201127
var d = new bigdecimal.BigDecimal(i);
var x = new bigdecimal.BigDecimal("123456.123456789012345678901234567890");
console.log("d * x = " + d.multiply(x));
// Output: d * x = 7470299375046812977089832214047022056.555930270554343863089286012030
var two = new bigdecimal.BigDecimal('2');
console.log("Average = " + d.add(x).divide(two));
// Output: Average = 30254875845269429306014707662291.561728394506172839450617283945
var down = bigdecimal.RoundingMode.DOWN();
console.log("d / x (25 decimal places) = " + d.divide(x, 25, DOWN));
// Output: d / x (25 decimal places) = 490131635404200348624039911.8662623025579331926181155
There is also a command-line REPL tool for experimentation, bigdecimal.js
if you install with the -g
switch, or ./node_modules/.bin/bigdecimal.js
otherwise. The bigdecimal
module is already loaded, also available as BD
for convenience.
bigdecimal.js
BigDec> d = new BD.BigDecimal("123456.123456789012345678901234567890")
This code is compiled Javascript, originating from the Google GWT project. GWT version 2.1 supports the Java BigDecimal class. The implementation came from the Apache Harmony project by way of gwt-java-math which optimized it for the Javascript compiler.
Compiled Javascript is a problem; however that is offset by these benefits:
BigDecimal
and BigInteger
classIf you can’t stand the idea of running machine-generated code, please implement BigInteger
and BigDecimal
in native Javascript; convince the world your implementation is trustworthy, reasonably bug-free, and sure to be maintained for several years and I will glady include it in this project.
Ready-to-use Javascript builds are available in the tagged Git revisions. Click the Download Source
button at the top and choose a vX.Y
tag. The built code will be in lib/bigdecimal.js
.
To build BigDecimal yourself from source, follow these steps:
gwt-2.4.0/
ant
at the command line). I just unpack it in this checkout and add $PWD/apche-ant-1.8.2/bin
to my PATH
.rake clean
rake
As with the prebuilt download, the CommonJS module will be in lib/bigdecimal.js
.
BigDecimal for Javascript is licensed under the Apache License, version 2.0.
FAQs
Arbitrary-precision BigInteger and BigDecimal real numbers: Apache Harmony's implementation
The npm package bigdecimal receives a total of 4,115 weekly downloads. As such, bigdecimal popularity was classified as popular.
We found that bigdecimal demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.