js 分数的乘法与除法运算

js中进行分数的乘法运算:

function multiply(paraX,paraY){
//为了后面统一处理,这儿先统一转化为分数
if(paraX.indexOf("/")==-1){
paraX=paraX+"/1";
}else{
paraX=paraX;
}
if(paraY.indexOf("/")==-1){
paraY=paraY+"/1";
}else{
paraY=paraY;
}

var numeratorX=paraX.split("/")[0];//x的分子
var denominatorX=paraX.split("/")[1];//x的分母
var numeratorY=paraY.split("/")[0];//y的分子
var denominatorY=paraY.split("/")[1];//y的分母

var numerator=numeratorX*numeratorY;//运算之后的分子
var denominator=denominatorX*denominatorY;//运算之后的分母
// 计算最大公约数
var divisor=gcd(numerator,denominator);

numerator=numerator/divisor;
denominator=denominator/divisor
if(denominator==1)
return numerator;
else
return numerator+"/"+denominator;

}

//计算最大公约数
function gcd(a,b){
if (b == 0){ 
return a;  
}
var r = parseInt(a % b) ;   
  return gcd(b, r);

}


//除法的话,只需要把后面这个乘数的分子分母进行交换即可
function divide(paraX,paraY){
if(paraX.indexOf("/")==-1){
paraX=paraX+"/1";
}else{
paraX=paraX;
}
if(paraY.indexOf("/")==-1){
paraY=paraY+"/1";
}else{
paraY=paraY;
}
var numeratorX=paraX.split("/")[0];//x的分子
var denominatorX=paraX.split("/")[1];//x的分母
var numeratorY=paraY.split("/")[1];//y的分子
var denominatorY=paraY.split("/")[0];//y的分母

var numerator=numeratorX*numeratorY;//运算之后的分子
var denominator=denominatorX*denominatorY;//运算之后的分母
// 计算最大公约数
var divisor=gcd(numerator,denominator);

numerator=numerator/divisor;
denominator=denominator/divisor
if(denominator==1)
return numerator;
else
return numerator+"/"+denominator;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值