Socket
Socket
Sign inDemoInstall

fraction.js

Package Overview
Dependencies
Maintainers
1
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fraction.js - npm Package Compare versions

Comparing version 1.2.1 to 1.3.0

2

bower.json
{
"name": "fraction.js",
"main": "fraction.js",
"version": "1.2.1",
"version": "1.3.0",
"homepage": "http://www.xarg.org/2014/03/precise-calculations-in-javascript/",

@@ -6,0 +6,0 @@ "description": "A rational number library",

/**
* @license Fraction.js v1.2.1 20/04/2014
* @license Fraction.js v1.3.0 29/06/2014
* http://www.xarg.org/2014/03/precise-calculations-in-javascript/

@@ -213,5 +213,5 @@ *

*
* Ex: new Fraction("100.'91823'").toDouble() => 100.91823918239183
* Ex: new Fraction("100.'91823'").toNumber() => 100.91823918239183
**/
self['toDouble'] = function() {
self['toNumber'] = function() {

@@ -218,0 +218,0 @@ return self['s'] * self['n'] / self['d'];

/*
Fraction.js v1.2.1 20/04/2014
Fraction.js v1.3.0 29/06/2014
http://www.xarg.org/2014/03/precise-calculations-in-javascript/

@@ -12,3 +12,3 @@

p.d=Math.abs(c);p.s=(0<=d)-(0>d);return p}var p={n:0,d:0,s:0},a=this;a.abs=function(){a.s=1;return a};a.add=function(b){b=l(arguments);return k(a.s*a.n*b.d+b.s*a.d*b.n,a.d*b.d)};a.sub=function(b){b=l(arguments);return k(a.s*a.n*b.d-b.s*a.d*b.n,a.d*b.d)};a.mul=function(b){b=l(arguments);return k(a.s*b.s*a.n*b.n,a.d*b.d)};a.div=function(b){b=l(arguments);return k(a.s*b.s*a.n*b.d,a.d*b.n)};a.set=function(a){a=l(arguments);return k(a.s*a.n,a.d)};a.mod=function(b){b=l(arguments);return 0===b.n*a.d?k(0,
0):k(a.s*b.d*a.n%(b.n*a.d),b.d*a.d)};a.reciprocal=function(){return k(a.s*a.d,a.n)};a.equals=function(b){b=l(arguments);return b.s*b.n*a.d===a.s*a.n*b.d};a.divisible=function(b){b=l(arguments);return 0===b.n*a.d?!1:0===a.n*b.d%(b.n*a.d)};a.toDouble=function(){return a.s*a.n/a.d};a.toFraction=function(){return a.n>a.d?0===a.n%a.d?""+a.s*a.n/a.d:(a.s*a.n/a.d|0)+" "+a.n%a.d+"/"+a.d:a.s*a.n+" / "+a.d};a.toString=function(){var b=(""+a.n).split(""),l=a.d,c=0,d="",h=q(a.n,a.d),f;a:{f=a.d;for(var e=0;e<
0):k(a.s*b.d*a.n%(b.n*a.d),b.d*a.d)};a.reciprocal=function(){return k(a.s*a.d,a.n)};a.equals=function(b){b=l(arguments);return b.s*b.n*a.d===a.s*a.n*b.d};a.divisible=function(b){b=l(arguments);return 0===b.n*a.d?!1:0===a.n*b.d%(b.n*a.d)};a.toNumber=function(){return a.s*a.n/a.d};a.toFraction=function(){return a.n>a.d?0===a.n%a.d?""+a.s*a.n/a.d:(a.s*a.n/a.d|0)+" "+a.n%a.d+"/"+a.d:a.s*a.n+" / "+a.d};a.toString=function(){var b=(""+a.n).split(""),l=a.d,c=0,d="",h=q(a.n,a.d),f;a:{f=a.d;for(var e=0;e<
f;e++)if(r(e,f)===r(e+h,f)){f=e;break a}f=0}for(var e=-1,g=10+h+f+b.length,k=0;k<g;k++){c*=10;k<b.length?c+=parseInt(b[k],10):k===b.length?(d+=".",e=0):e++;if(0<h&&e===f)d+="(";else if(0<h&&e-f===h){d+=")";break}c>=l?(d+=c/l|0,c%=l):d+="0"}return(~a.s?"":"-")+d.replace(/^0+([1-9]|0\.)/g,"$1").replace(/(\d)0+$/,"$1")};a.n=0;a.d=a.s=1;n=l(arguments);k(n.s*n.n,n.d)}"undefined"!==typeof module&&module.exports&&(module.exports.Fraction=Fraction);
{
"name": "fraction.js",
"title": "fraction.js",
"version": "1.2.1",
"version": "1.3.0",
"homepage": "http://www.xarg.org/2014/03/precise-calculations-in-javascript/",

@@ -6,0 +6,0 @@ "description": "A rational number library",

@@ -84,3 +84,19 @@ # Fraction.js - ℚ in JavaSript

Mathematical correct modulo
---
The behaviour on negative congruences is different to most modulo implementations in computer science. Even the *mod()* function of Fraction.js behaves in the typical way. To solve the problem with Fraction.js you could come up with this:
```javascript
var a = -1;
var b = 10.99;
console.log(new Fraction(a)
.mod(b)
.toNumber()); // Not correct
console.log(new Fraction(a)
.mod(b).add(b).mod(b)
.toNumber()); // Correct!
```
fmod() impreciseness circumvented

@@ -227,3 +243,3 @@ ---

double toDouble()
double toNumber()
---

@@ -230,0 +246,0 @@ Returns a decimal representation of the fraction

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc