c# 分数处理

分数处理类
作用: 用于做 比例运算、分数运算

分数处理类
public class Fraction
		{
			private int member; // 分子
			private int denominator; // 分母
			//分子属性
			public int Member
			{
				get
				{
					return member;
				}
				set
				{
					member = value;
				}
			}
			//分母属性
			public int Denominator
			{

				get
				{
					return denominator;
				}
				set
				{
					if (value != 0)
					{
						denominator = value;
					}
				}

			}

			//打印分数信息
			public void PrintFraction()
			{

				Console.WriteLine(member + " / " + denominator);

			}
			//约分
			public void Reduction()
			{
				int gcd = GCD(this.Member, this.Denominator);
				this.Member /= gcd;
				this.Denominator /= gcd;
			}

			//先求最大公约数 4 8 
			/// <summary>
			/// 循环获取整数余数 直到余数为0为止; 
			/// </summary>
			/// <param name="a"></param>
			/// <param name="b"></param>
			/// <returns></returns>
			private int GCD(int a, int b)
			{
				int temp = 0;
				while (b != 0)
				{
				// 获取 a 除于 b 的整数余数  整数余数(不带小数点的余数)就是 偏向与0的  整数余数为0时 代表 表达式可以整除
					temp = a % b;
				// 获取到 a 的 整数余数 然后 调转a为b变量 余数赋值给新的b变量  作用: 用于将除数整除并除尽
					a = b;
					b = temp;
				}
				return a;
			}
			//分子分母交换
			public Fraction Exchange()
			{
				Fraction NewFra = new Fraction();

				NewFra.denominator = this.member;
				NewFra.member = this.denominator;
				return NewFra;
			}

			//加法
			public Fraction Add(Fraction fra)
			{
				//存放加法结果
				Fraction sum = new Fraction();
				sum.Member = this.member * fra.Denominator + fra.Member * this.denominator;
				sum.Denominator = this.Denominator * fra.Denominator;
				//约分
				sum.Reduction();

				return sum;
			}
			//减法
			public Fraction Sub(Fraction fra)
			{
				//存放加法结果
				Fraction sum = new Fraction();
				sum.Member = this.member * fra.Denominator - fra.Member * this.denominator;
				sum.Denominator = this.Denominator * fra.Denominator;
				//约分
				sum.Reduction();

				return sum;
			}

			//乘法
			public Fraction Mult(Fraction fra)
			{
				//存放加法结果
				Fraction sum = new Fraction();
				sum.Member = this.member * fra.Member;
				sum.Denominator = this.Denominator * fra.Denominator;
				//约分
				sum.Reduction();

				return sum;
			}

			//除法
			public Fraction Division(Fraction fra)
			{
				//存放加法结果
				Fraction sum = new Fraction();
				//求倒数
				Fraction newfra = fra.Exchange();

				sum.Member = this.member * newfra.member;
				sum.Denominator = this.denominator * newfra.denominator;
				//约分
				sum.Reduction();

				return sum;
			}
			//取余数
			public Fraction Ramind(Fraction fra)
			{
				Fraction sum = new Fraction();
				sum.member = (this.member * fra.denominator) % (fra.member * this.denominator);
				sum.denominator = (this.denominator * fra.denominator);
				sum.Reduction();
				return sum;
			}


		}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NET安梓晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值