big_radish吧 关注:5贴子:592
  • 0回复贴,共1
<title>次碳酸钴的乘法运算 JS版</title>
<style>
   table {width:100%;height:100%;}
   td {height:30%;}
   textarea {width:100%;height:100%;word-break:break-all;word-wrap:break-word;}
</style>
<table><tr><td width="60">乘数1</td><td><textarea id="a">3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798</textarea></td></tr><tr><td>乘数2</td><td><textarea id="b">2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742</textarea></td></tr><tr><td>积</td><td><textarea readonly="readonly" id="c"></textarea></td></tr><tr><td colspan="2"><input type="button" value="计算结果" id="add"></td></tr></table>
<script>
   function $(e){return document.getElementById(e)};
   $("add").onclick=function(){$("c").value=mun($("a").value,$("b").value)};
   function mun(a,b){var n=/^-?\d*?\.?\d*?$/;if(!n.test(a)||!n.test(b))return"NaN";var sg=a.charAt(0)=="-"^b.charAt(0)=="-",ia=a.indexOf("."),ib=b.indexOf("."),la=a.length,lb=b.length,pa=ia==-1?0:la-ia-1,pb=ib==-1?0:lb-ib-1;p=pa+pb;a=a.replace(/\.|-/g,""),b=b.replace(/\.|-/g,"");var c="",la=a.length,lb=b.length,i=la;while(i--){var j=lb,q=0,sc="";while(j--){var tmp=Number(a.charAt(i))*Number(b.charAt(j))+q;if(tmp>9){q=tmp/10|0;tmp=tmp%10}else q=0;sc=tmp+sc};if(q)sc=q+sc;j=la-i-1;while(j--)sc+=0;if(sc)c=add(c,sc)};var ah=c.substr(0,c.length-p),al=c.substr(c.length-p),t0=/^0+|0+$/g;ah=ah.replace(t0,"");al=al.replace(t0,"");c=ah+(al?"."+al:"");if(sg)c="-"+c;return c};
   function add(a,b){var c="",la=a.length,lb=b.length,m=Math.max(la,lb),i=m,q=false;while(i--){var tmp=Number(a.charAt(i-m+la))+Number(b.charAt(i-m+lb))+q,q=tmp>9;if(q)tmp-=10;c=tmp+c};if(q)c=1+c;return c};
</script>


IP属地:上海1楼2010-11-19 10:58回复