Phiên bản đầy đủ: jsB@nk » Tính toán » Tính toán về phân số
URL: https://www.javascriptbank.com/fraction-calculator.html
Bạn có thể dùng hiệu ứng JavaScript này để tính bốn phép toán đơn giản cộng, trừ, nhân và chia đối với hai phân số bất kì. Hiệu ứng cũng cho phép bạn chọn kết quả được đơn giản đến tối thiểu nhất hay không.
Phiên bản đầy đủ: jsB@nk » Tính toán » Tính toán về phân số
URL: https://www.javascriptbank.com/fraction-calculator.html
<script type="text/javascript">/******************************************* Matthew C. Roy** Big Business Websites** For Small Business Prices!** http://www.matthewroy.com**** You may use this script freely for** non-commercial use as long** as this header is left intact.*****************************************/var n1, n2, d1, d2, An, Ad, Op;var neg=1;function solve(){ //If all fields are numbers if(!isNaN(document.calc.n1.value)&&!isNaN(document.calc.d1.value)&&!isNaN(document.calc.n2.value)&&!isNaN(document.calc.d2.value)){ //If no fields are blank if(document.calc.n1.value!=''&&document.calc.d1.value!=''&&document.calc.n2.value!=''&&document.calc.d2.value!=''){ //Set variables: n1=document.calc.n1.value;// Numerator 1 d1=document.calc.d1.value;// Numerator 2 n2=document.calc.n2.value;// Denominator 1 d2=document.calc.d2.value;// Denominator 2 Op=document.calc.Op.value;// Operator } else { //If blank field alert('Please fill-in all fields!'); } } else { //If field has non-number alert('Please enter only Numbers into the fields!'); } //Which Operation switch (Op){ case '+': //add fractions using formula ((n1*d2)+(n2*d1)) over (d1*d2) An=(n1*d2)+(n2*d1) //Answer Numerator Ad=(d1*d2) //Answer Denominator if(document.calc.reduce.checked==1){ reduce(); } else { display(); } break case '-': //subtract fractions using formula ((n1*d2)-(n2*d1)) over (d1*d2) An=(n1*d2)-(n2*d1)//Answer Numerator Ad=(d1*d2)//Answer Denominator if(document.calc.reduce.checked==1){ reduce(); } else { display(); } break case '*': //multiply fractions using formula (n1*n2) over (d1*d2) An=n1*n2;//Answer Numerator Ad=d1*d2; //Answer Denominator if(document.calc.reduce.checked==1){ reduce(); } else { display(); } break case '/': //divide fractions using formula (n1*d2) over (d1*n2) An=n1*d2;//Answer Numerator Ad=d1*n2;//Answer Denominator if(document.calc.reduce.checked==1){ reduce(); } else { display(); } break }}function reduce() { neg=1; //1 if positive, -1 if negative //convert to strings ng=An+''; dg=Ad+'' if(ng.indexOf('-')!=-1){ //check to see if answer is negative. neg=-1 } if(dg.indexOf('-')!=-1){ neg=-1 } if(ng.indexOf('-')!=-1&&dg.indexOf('-')!=-1) {//if both numerator and denominator are negative the answer is positive neg=1 } var factorX //highest common factor if ( An == 0 || Ad == 0 ) { factorX=1; return; } An = Math.abs( An ); Ad = Math.abs( Ad ); var factorX = 1; //Find common factors of Numerator and Denominator for ( var x = 2; x <= Math.min( An, Ad ); x ++ ) { var check1 = An / x; if ( check1 == Math.round( check1 ) ) { var check2 = Ad / x; if ( check2 == Math.round( check2 ) ) { factorX = x; } } } An=(An/factorX)*neg; //divide by highest common factor to reduce fraction then multiply by neg to make positive or negative Ad=Ad/factorX; //divide by highest common factor to reduce fraction display();}function display(){ //Display answer document.calc.An.value = An; document.calc.Ad.value = Ad;}// --></script><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->
<table width="200" align="center" border="0" cellspacing="0" cellpadding="4" style="background-color:#ffffff;border:1px #000000 solid;"> <tr> <td align="center" valign="middle"> <h3>Fraction Calculator</h3> <form name="calc"> <table width="150" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="border-bottom:2px #000000 solid;"><input type="text" size="2" name="n1" id="n1" tabindex="1"></td> <td rowspan="2" align="center" valign="middle"> <select name="Op" tabindex="3"> <option value="+">+</option> <option value="-">-</option> <option value="*">x</option> <option value="/">÷</option> </select> </td> <td style="border-bottom:2px #000000 solid;"><input type="text" size="2" name="n2" id="n2" tabindex="4"></td> <td rowspan="2" align="center" valign="middle"><input type="button" value=" = "onClick="solve();" tabindex="6"></td> <td style="border-bottom:2px #000000 solid;"><input type="text" size="2" name="An" id="An" readonly="1"></td> </tr> <tr> <td><input type="text" size="2" name="d1" id="d1" tabindex="2"></td> <td><input type="text" size="2" name="d2" id="d2" tabindex="5"></td> <td><input type="text" size="2" name="Ad" id="Ad" readonly="1"></td> </tr> </table> <br><input type="checkbox" name="reduce" id="reduce" checked> Reduce </form> </td> </tr></table><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->