diff options
Diffstat (limited to 'node_modules/num2fraction')
| -rw-r--r-- | node_modules/num2fraction/.editorconfig | 14 | ||||
| -rw-r--r-- | node_modules/num2fraction/.npmignore | 8 | ||||
| -rw-r--r-- | node_modules/num2fraction/LICENSE | 22 | ||||
| -rw-r--r-- | node_modules/num2fraction/README.md | 87 | ||||
| -rw-r--r-- | node_modules/num2fraction/index.js | 48 | ||||
| -rw-r--r-- | node_modules/num2fraction/package.json | 60 | 
6 files changed, 239 insertions, 0 deletions
| diff --git a/node_modules/num2fraction/.editorconfig b/node_modules/num2fraction/.editorconfig new file mode 100644 index 0000000..4a12c11 --- /dev/null +++ b/node_modules/num2fraction/.editorconfig @@ -0,0 +1,14 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true + + +[*.md] +trim_trailing_whitespace = false diff --git a/node_modules/num2fraction/.npmignore b/node_modules/num2fraction/.npmignore new file mode 100644 index 0000000..a8d3284 --- /dev/null +++ b/node_modules/num2fraction/.npmignore @@ -0,0 +1,8 @@ +.gitignore +.travis.yml + +node_modules/ +test/ + +gulpfile.js +Gruntfile.js diff --git a/node_modules/num2fraction/LICENSE b/node_modules/num2fraction/LICENSE new file mode 100644 index 0000000..9d10f01 --- /dev/null +++ b/node_modules/num2fraction/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 PostCSS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/num2fraction/README.md b/node_modules/num2fraction/README.md new file mode 100644 index 0000000..aa47197 --- /dev/null +++ b/node_modules/num2fraction/README.md @@ -0,0 +1,87 @@ +# num2fraction + +[](https://travis-ci.org/yisibl/num2fraction)  +[](https://www.npmjs.com/package/num2fraction)  +[](https://www.npmjs.com/package/num2fraction)  +[](http://opensource.org/licenses/MIT)  + +> Converting Number to Fraction with Node.js. + +## Installation + +```console +npm install num2fraction +``` + +## Usage + +```js +var π   = Math.PI +var n2f = require('num2fraction') +  console.log(n2f(0))                // => 0 +  console.log(n2f(.2))               // => 1/5 +  console.log(n2f(1.1))              // => 11/10 +  console.log(n2f(1.2))              // => 6/5 +  console.log(n2f(1.3))              // => 13/10 +  console.log(n2f(1.4))              // => 7/5 +  console.log(n2f(1.5))              // => 3/2 +  console.log(n2f(2))                // => 2/1 +  console.log(n2f(2.1))              // => 21/10 +  console.log(n2f(3))                // => 3/1 +  console.log(n2f(2.555))            // => 511/200 +  console.log(n2f(8.36))             // => 209/25 +  console.log(n2f('3em'))            // => 3/1 +  console.log(n2f('1.5px'))          // => 3/2 +  console.log(n2f(7 / 9)             // => 7/9 +  console.log(n2f(8 / 9)             // => 8/9 +  console.log(n2f(512 / 999)         // => 512/999 +  console.log(n2f((2 * π / 3) / π)   // => 2/3 +  console.log(n2f((8 * 5) / (4 / 2)) // => 20/1 +``` + +## Example + +Opera [old versions](http://www.opera.com/docs/specs/presto28/css/o-vendor/) support the non-standard `-o-min-device-pixel-ratio` or `-o-max-device-pixel-ratio` in CSS media queries. + +```css +@media +  only screen and (-webkit-min-device-pixel-ratio: 2), +  only screen and (   min--moz-device-pixel-ratio: 2), +  only screen and (     -o-min-device-pixel-ratio: 2/1), /* Opera */ +  only screen and (        min-device-pixel-ratio: 2), +  only screen and (                min-resolution: 192dpi), /* fallback */ +  only screen and (                min-resolution: 2dppx) {  + +} +``` + +## Changelog + +### v1.2.2 + +* \+ Remove: Debug log message. + +### v1.2.1 + +* \+ Fix: 0 must be converted to a string. + +### v1.2.0 + +* \+ Fix: Accomodate rounding errors. (by @jamestalmage) +* \+ Fix: The negative sign should be on numerator. (by @jamestalmage) + +### v1.1.0 + +* \+ Use more precise (not fixed) precision factor for the calculation + +### v1.0.1 + +* \- Remove "ci.testling.com" + +### V1.0.0 + +> First release. + +## License + +[MIT](LICENSE) diff --git a/node_modules/num2fraction/index.js b/node_modules/num2fraction/index.js new file mode 100644 index 0000000..659deca --- /dev/null +++ b/node_modules/num2fraction/index.js @@ -0,0 +1,48 @@ +'use strict' + +var abs = Math.abs +var round = Math.round + +function almostEq(a, b) { +  return abs(a - b) <= 9.5367432e-7 +} + +//最大公约数 Greatest Common Divisor +function GCD(a, b) { +  if (almostEq(b, 0)) return a +  return GCD(b, a % b) +} + +function findPrecision(n) { +  var e = 1 + +  while (!almostEq(round(n * e) / e, n)) { +    e *= 10 +  } + +  return e +} + +function num2fraction(num) { +  if (num === 0 || num === '0') return '0' + +  if (typeof num === 'string') { +    num = parseFloat(num) +  } + + +  var precision = findPrecision(num) //精确度 +  var number = num * precision +  var gcd = abs(GCD(number, precision)) + +  //分子 +  var numerator = number / gcd +  //分母 +  var denominator = precision / gcd + +  //分数 +  return round(numerator) + '/' + round(denominator) +} + +module.exports = num2fraction + diff --git a/node_modules/num2fraction/package.json b/node_modules/num2fraction/package.json new file mode 100644 index 0000000..68d46c6 --- /dev/null +++ b/node_modules/num2fraction/package.json @@ -0,0 +1,60 @@ +{ +  "_from": "num2fraction@^1.2.2", +  "_id": "num2fraction@1.2.2", +  "_inBundle": false, +  "_integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", +  "_location": "/num2fraction", +  "_phantomChildren": {}, +  "_requested": { +    "type": "range", +    "registry": true, +    "raw": "num2fraction@^1.2.2", +    "name": "num2fraction", +    "escapedName": "num2fraction", +    "rawSpec": "^1.2.2", +    "saveSpec": null, +    "fetchSpec": "^1.2.2" +  }, +  "_requiredBy": [ +    "/autoprefixer" +  ], +  "_resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", +  "_shasum": "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede", +  "_spec": "num2fraction@^1.2.2", +  "_where": "/home/dstaesse/git/website/node_modules/autoprefixer", +  "author": { +    "name": "yisi", +    "email": "yiorsi@gmail.com", +    "url": "http://iyunlu.com/view" +  }, +  "bugs": { +    "url": "https://github.com/yisibl/num2fraction/issues" +  }, +  "bundleDependencies": false, +  "deprecated": false, +  "description": "Convert number to fraction", +  "devDependencies": { +    "tape": "^3.0.0" +  }, +  "homepage": "https://github.com/yisibl/num2fraction#readme", +  "keywords": [ +    "fraction", +    "number", +    "math", +    "maths", +    "arithmetic", +    "gcd", +    "rational" +  ], +  "license": "MIT", +  "main": "index.js", +  "name": "num2fraction", +  "repository": { +    "type": "git", +    "url": "git+ssh://git@github.com/yisibl/num2fraction.git" +  }, +  "scripts": { +    "test": "tape test/*.js" +  }, +  "version": "1.2.2" +} | 
