numeric_calculate.js

来自「哈夫曼压缩程序」· JavaScript 代码 · 共 75 行

JS
75
字号
function Fraction(numerator,denominator)
{
	this.N = numerator;
	this.D = denominator;
}
function F_Add(Fraction1,Fraction2)
{
	var c = new Fraction(0,1);
	c.N = Fraction1.N*Fraction2.D+Fraction1.D*Fraction2.N;
	c.D = Fraction1.D*Fraction2.D;
	F_To_Simple(c);
	return c;
}
function F_Minus(minuend, subtrahend)
{
	var c = new Fraction(0,1);
	c.N = minuend.N*subtrahend.D-minuend.D*subtrahend.N;
	c.D = minuend.D*subtrahend.D;
	c = F_To_Simple(c);
	return c;
}
function F_Multiply(Fraction1,Fraction2)
{
	var c = new Fraction(0,1);
	c.N = Fraction1.N*Fraction2.N;
	c.D = Fraction1.D*Fraction2.D;
	c = F_To_Simple(c);
	return c;	
}
function F_Divide(dividend,divisor)
{
	var c = new Fraction(0,1);
	if(divisor.N == 0)
	{
		alert("divisor can't be 0!\n除数不能为0!");
		return 0;
	}
	else
		{
			c.N = dividend.N*divisor.D;
			c.D = dividend.D*divisor.N;
			c = F_To_Simple(c);
			return c;
		} 
}
function F_To_Simple(Fraction1)
{
	var ch_d = 1;
	var ch_n = 1;
	if(Fraction1.D < 0)ch_d = -1;
	if(Fraction1.N < 0)ch_n = -1;
	Fraction1.N *= ch_n;
	Fraction1.D *= ch_d;
	var bigDivisor = (Fraction1.N>Fraction1.D) ? Fraction1.N:Fraction1.D;
	var smallDivisor = (Fraction1.N<Fraction1.D) ? Fraction1.N:Fraction1.D;
	var Divisor;
	while(smallDivisor)
	{
		Divisor = bigDivisor%smallDivisor;
		bigDivisor = smallDivisor;
		smallDivisor = Divisor;
	}
	Fraction1.N /= bigDivisor;
	Fraction1.D /= bigDivisor;
	Fraction1.N *= ch_n*ch_d;
	return Fraction1;
}
function F_Equal(Fraction1,Fraction2)
{
	Fraction1 = F_To_Simple(Fraction1);
	Fraction2 = F_To_Simple(Fraction2);
	if(Fraction1.N == Fraction2.N && Fraction1.D == Fraction2.D)
		return true;
	else return false;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?