参数网址:http://www.sharejs.com/codes/csharp/7133

using System;namespace TT.Entity
{/// <summary>/// 分数类/// </summary>public class Fraction{#region propertyprivate double _denominator;/// <summary>/// 分母/// </summary>public double Denominator{get{return _denominator;}set{if (value == 0){throw new InvalidOperationException("分母不能为0");}_denominator = value;}}/// <summary>/// 分子/// </summary>public double Numerator { get; set; }#endregion#region constructorpublic Fraction(){}/// <summary>/// 创建分数(默认分母为1)/// </summary>/// <param name="numerator">分子</param>public Fraction(double numerator){Numerator = numerator;_denominator = 1;}/// <summary>/// 创建分数/// </summary>/// <param name="numerator">分子</param>/// <param name="denominator">分母</param>public Fraction(double numerator, double denominator){Numerator = numerator;_denominator = denominator;}#endregion#region method/// <summary>l/// 相加/// </summary>/// <param name="d1"></param>/// <param name="d2"></param>/// <returns></returns>public Fraction Add(double d1, double d2){return Add(new Fraction(d1), new Fraction(d2));}/// <summary>///  计算两个数的相减,并返回一个分数/// </summary>/// <param name="minuend">被减数</param>/// <param name="subtrahend">减数</param>/// <returns></returns>public Fraction Sub(double minuend, double subtrahend){return Sub(new Fraction(minuend), new Fraction(subtrahend));}/// <summary>/// 计算两个数的相乘,并返回一个分数/// </summary>/// <param name="d1"></param>/// <param name="d2"></param>/// <returns></returns>public Fraction Multiple(double d1, double d2){return Multiple(new Fraction(d1), new Fraction(d2));}/// <summary>/// 计算两个数的相除,并返回一个分数/// </summary>/// <param name="dividend">被除数</param>/// <param name="divisor">除数</param>/// <returns></returns>public Fraction Divided(double dividend, double divisor){return Divided(new Fraction(dividend), new Fraction(divisor));}public string GetFractionValueString(){return string.Format("{0}/{1}", Numerator, Denominator);}public double GetFractionValue(){return Numerator / Denominator;}/// <summary>/// 计算两个分数的相加,并返回一个分数/// </summary>/// <param name="f1"></param>/// <param name="f2"></param>/// <returns></returns>public Fraction Add(Fraction f1, Fraction f2){Fraction result = new Fraction();double dencominator = CalculateLeaseCommonMultiple(f1.Denominator, f2.Denominator);f1.Numerator = (dencominator / f1.Denominator) * f1.Numerator;f2.Numerator = (dencominator / f2.Denominator) * f2.Numerator;result.Denominator = dencominator;result.Numerator = f1.Numerator + f2.Numerator;return result;}/// <summary>///  计算两个分数的相减,并返回一个分数/// </summary>/// <param name="minuend">被减数</param>/// <param name="subtrahend">减数</param>/// <returns></returns>public Fraction Sub(Fraction minuend, Fraction subtrahend){Fraction result = new Fraction();double dencominator = CalculateLeaseCommonMultiple(minuend.Denominator, subtrahend.Denominator);minuend.Numerator = (dencominator / minuend.Denominator) * minuend.Numerator;subtrahend.Numerator = (dencominator / subtrahend.Denominator) * subtrahend.Numerator;result.Denominator = dencominator;result.Numerator = minuend.Numerator - subtrahend.Numerator;return result;}/// <summary>/// 计算两个分数的相乘,并返回一个分数/// </summary>/// <param name="f1"></param>/// <param name="f2"></param>/// <returns></returns>public Fraction Multiple(Fraction f1, Fraction f2){Fraction result = new Fraction();double dencominator = f1.Denominator * f2.Denominator;result.Denominator = dencominator;result.Numerator = f1.Numerator * f2.Numerator;return result;}/// <summary>/// 计算两个分数的相除,并返回一个分数/// </summary>/// <param name="dividend">被除数</param>/// <param name="divisor">除数</param>/// <returns></returns>public Fraction Divided(Fraction dividend, Fraction divisor){Fraction result = new Fraction();double dencominator = dividend.Denominator * divisor.Numerator;result.Denominator = dencominator;result.Numerator = dividend.Numerator * divisor.Denominator;return result;}#endregion#region private/// <summary>/// 计算最小公倍数/// </summary>/// <param name="d1"></param>/// <param name="d2"></param>/// <returns></returns>private double CalculateLeaseCommonMultiple(double d1, double d2){double result = Math.Max(d1, d2);double i = 1D;do{if (result % d1 == 0D&& result % d2 == 0D){break;}else{result *= (++i);}} while (true);return result;}#endregion}
}

转载于:https://www.cnblogs.com/FH-cnblogs/p/7346059.html

C# 分数计算类(加减乘除)相关推荐

  1. java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...

    导航:网站首页 > 老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java 时间:2019-4-10 老师要求张浩使用面向对象的思想编 ...

  2. c语言有理数分数求和,C++定义Rational(有理数)类以及结合友元函数实现分数计算的案例...

    直接贴代码,我想注释已经够全面了 //备注:分数的定义全程可用一个包含两个元素的整型数组代替,为了方便理解和代码的通用,本代码采用分开定义的方法 #include using namespace st ...

  3. 基于jsp的职工年终考核分数计算

    如果觉得有用,可以点赞关注我,一起进步 结果图: 题目: 学校每年年终对任课教师.辅导员.实验员进行年终考核. 教师的考核分数由3个部分组成. 学生评价分60%+同行评价分20%+领导评价分20% 辅 ...

  4. optaplanner学习笔记(九)分数计算表现技巧

    4.1.概述 通常Solver会花费大部分执行时间来运行分数计算(在其最深的循环中调用).更快的分数计算将使用相同的算法在更短的时间内返回相同的解决方案,这通常意味着在相同的时间内获得更好的解决方案. ...

  5. 如何用pytorch做文本摘要生成任务(加载数据集、T5 模型参数、微调、保存和测试模型,以及ROUGE分数计算)

    摘要:如何使用 Pytorch(或Pytorchlightning) 和 huggingface Transformers 做文本摘要生成任务,包括数据集的加载.模型的加载.模型的微调.模型的验证.模 ...

  6. 无限复活服务器,绝地求生无限复活玩法说明 绝地求生无限复活分数计算规则/吃鸡攻略...

    本文导航第2页:  无限复活新手教程 无限复活新手教程 在死斗模式中玩家是背着武器跳伞!落地钢枪!死后复活!火并到爽! 死斗模式根据积分来决定胜负,当某小队率先达到分数之后游戏结束! 不过该活动目前只 ...

  7. 华为公有云服务-计算类(2)

    华为公有云服务-计算类(2) 如何在公有云上购买使用ECS(网络配置)? ECS管理-登录windows系统 ECS ECS管理-登录Linux系统 ECS ECS管理 - 重装/切换操作系统 ECS ...

  8. 【ybt金牌导航8-3-3】【luogu P4593】分数计算 / 教科书般的亵渎(数学)(拉格朗日插值)

    分数计算 / 教科书般的亵渎 题目链接:ybt金牌导航8-3-3 / luogu P4593 题目大意 有一些怪,血量从 1~n,其中有 m 个数是没有怪的,给出这些数. 然后你可以每次操作攻击所有怪 ...

  9. 【TOP期刊推荐】JCR1区网络计算类重点SCI期刊征稿中~

    JCR1区网络计算类 [期刊简介]IF:7.0-8.0,JCR1区,中科院2/1区 [检索情况]SCI&EI双检 [版面情况]正刊 [录用周期]期刊部系统内提交,预计3-5个月左右录用,走完期 ...

最新文章

  1. php操作mysql的常用语句(大全)
  2. 使用mac pro电脑当tomcat端口被占用怎么解决?
  3. 连接mysql的机制_安装成功后mysql 8.0不能连接navicat的解决方法
  4. CHIP ID was not passed on from the tile; contact your system administrator
  5. 中发生数据丢失_如何防止Redis脑裂导致数据丢失?
  6. 转:jquery选择器的使用方法
  7. 在MFC类中各种类的指针的获取和应用
  8. 12. PHP 函数
  9. C++递归方法实现全排列
  10. 4775电子书免费链接
  11. 【案例分享】利用Python识别图片中的文字
  12. 谷歌浏览器连接超时_技术丨常见在线课堂网络连接网络视频播放的解决方案...
  13. 整理了100个必备的 Python 函数,值得收藏
  14. 软件项目管理 实验二
  15. 工业级4g无线路由器_工业级4g无线路由器厂家品牌
  16. IC验证笔试题(平头哥)
  17. 【软件设计】CS客户端整体架构
  18. 【XiunoBBS】开源简易论坛学习
  19. 依赖注入是什么?Go是如何实现依赖注入的?
  20. JST :Joint sentiment topic model ASUM :Aspect sentiment unification model

热门文章

  1. Cadence Allegro如何生成PCB截面图
  2. 关于ArcGIS一运行ArcToolbox就闪退问题的两种可能性和解决方案
  3. 威威猫系列故事——打地鼠
  4. 软工之404 Note Found 队选题报告
  5. ListView里面的自定义控件
  6. label的自动换行
  7. ssm+jsp计算机毕业设计服装销售进出货管理系统141r2(程序+LW+源码+远程部署)
  8. 科视Christie新款 Griffyn 系列投影机采用行业先进的封装技术,提供 36,500 流明亮度
  9. java三大特性之多态的认识,以及多态的实际应用(一)
  10. [连载] 深入理解Java虚拟机(JVM高级特性与最佳实践)之 【走近Java】