(C#)分数的重载运算

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

///

/// 分数的加减乘除运算符重载

///

public class Rfloat

{

    private float fNumerator = 0f;

    private float fDenominator = 0f;

    public Rfloat(float numerator, float denominator)

    {

        fNumerator = numerator;

        fDenominator = denominator;

    }

    public static Rfloat operator +(Rfloat a, Rfloat b)

    {

        var denominator = a.fDenominator * b.fDenominator;

        var numerator = a.fNumerator * b.fDenominator + b.fNumerator * a.fDenominator;

        return new Rfloat(numerator, denominator);

    }

    public static Rfloat operator -(Rfloat a, Rfloat b)

    {

        var denominator = a.fDenominator * b.fDenominator;

        var numerator = a.fNumerator * b.fDenominator - b.fNumerator * a.fDenominator;

        return new Rfloat(numerator, denominator);

    }

    public static Rfloat operator *(Rfloat a, Rfloat b)

    {

        var denominator = a.fDenominator * b.fDenominator;

        var numerator = a.fNumerator * b.fNumerator;

        return new Rfloat(numerator, denominator);

    }

    public static Rfloat operator /(Rfloat a, Rfloat b)

    {

        var denominator = a.fDenominator * b.fNumerator;

        var numerator = a.fNumerator * b.fDenominator;

        return new Rfloat(numerator, denominator);

    }

    public float GetFloat()

    {

        return fNumerator / fDenominator;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,995评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,046评论 0 2
  • 田奶奶伸伸胳膊,努力的睁开眼,看见爬在床也睡着的大女,五十七的人多半白发,满脸疲倦。田奶奶想起了自己好脑溢血了,她...
    宋立新阅读 139评论 0 0
  • 软件安装略有麻烦,简要记录如下: 1. 问题描述 Origin2015破解版下载地址: 链接:http://pan...
    马骋阅读 728评论 0 2