1.3.6 • Published 10 years ago

happycalculator v1.3.6

Weekly downloads
16
License
MIT
Repository
github
Last release
10 years ago

happycalculator Build Status

icon

calculator for natural formula like "1+2+3" for result 6,support custom function like sqrt(20) also whatever you want,support formulas loop, like sqrt(sqrt(20+20))

中文

##Install

$ npm install --save happycalculator

or bower

$ bower install --save happycalculator and it will apply happycalculator global to you

##Usage ###base

var happycalculator = require('happycalculator');
var formula = '20 * ( 10 + 20 ) / 20';
happycalculator.convert(formula);
//output: ['20', '*', '(', '10', '+', '20', ')', '/', '20']
happycalculator.shunt(formula);
//output: [ '20', '10', '20', '+', '*', '20', '/' ]
happycalculator.calculate(formula);
//output: 30

###advance

happycalculator.calculate(sqrt(10)*20/20);
//output 100

happycalculator.addFormulas({'sqrt' : '$1 + $1'});
happycalculator.calculate(sqrt(10)*20/20);
//output 20
happycalculator.calculate(sqrt(sqrt(10))*20/20);
//output 40
happycalculator.removeFormulas();
happycalculator.calculate(sqrt(10)*20/20);
//output 20

happycalculator.addFormulas({'custom' : '$1 + $2 +$3'});
happycalculator.calculate(custom(10, 20, 30))
//output 60

//support formulas loop
happycalculator.calculate(sqrt(sqrt(10)));
//output 10000
happycalculator.calculate(sqrt(sqrt(2+2)));
//output 256

####support simple code

var code = `sum = $1 + $2;
a = 2;
b = 3;
sum(a,b)+a;
a = 3;
a+b;`
calculator.parse(code);
//output ['(2+3)+2', '3+3']
calculator.calculateCode(code);
//output [7, 6]

and that's all simple code support right now

##API ###convert(string_infix) return an array that split with "+-*/",and if the string with values(example:a,ab,cos(20)) also that will be ok

###shunt(string_infix) return an array postinfx that with the Shunting-yard Algorithm converted,the core code was written from rosettacode and i change some code for the project

###calculate(string_infix) return the num calculated

###addFormulas(formulas) add custom formulas to the calculator,and the formula rule is looks like that{'key' => '$1+$2+$3'},key(1,2,3),default formula function has sqrt:'$1*$1' right now,its working on

###removeFormulas() remove all custom formulas you add in and defaults to the default project supported formulas

###parse(string_code) return array of string_code parsed

###calculateCode(string_code) return array of the result calculated by the string_code parsed

##License MIT © billyct

1.3.6

10 years ago

1.3.5

10 years ago

1.3.4

10 years ago

1.3.3

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago