js 实现两个小数的相乘、相除功能
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>jquery中的ajax</title> 6 <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> 7 <style type="text/css"> 8 </style> 9 <script type="text/javascript"> 10 //计算两个数相乘 11 function Mul(arg1, arg2){ 12 var m=0,s1=arg1.toString(),s2=arg2.toString(); 13 //获取两个相乘数据的小数点后面的数据的长度,即获取小数的位数,因为最终相乘计算的结果:结果小数的位数=第一个数的小数位数+第二个数的小数位数 14 try{ 15 m+=s1.split(".")[1].length; 16 }catch(e){} 17 try{ 18 m+=s2.split(".")[1].length; 19 }catch(e){} 20 //将两个小数去掉小数点,强制转换整个值(即进行数值放开小数点位数的倍数),然后进行相乘的操作,相乘的结果除去10的m次方 21 return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m); 22 } 23 //计算两个数相除 24 function division(arg1, arg2){ 25 var t1 = 0, t2 = 0, r1, r2; 26 try { 27 t1 = new String(arg1).split(".")[1].length; 28 } catch (e) { } 29 try { 30 t2 = arg2.toString().split(".")[1].length; 31 } catch (e) { } 32 r1 = Number(new String(arg1).replace(".", "")); 33 r2 = Number(arg2.toString().replace(".", "")); 34 //放大倍数后两个数相除 后,乘以两个小数位数长度相减后的10的次幂 35 var money = Mul((r1 / r2),Math.pow(10, t2 - t1)); 36 //保留2个小数位数 37 return money.toFixed(2); 38 } 39 40 $(function(){ 41 alert(Mul(1.414,1.732)); 42 alert(division(1.732,1.4146)); 43 }); 44 </script> 45 </head> 46 <body> 47 </body> 48 </html>