问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在asp.net的中,如何用分数表示数值?

发布网友 发布时间:2022-05-16 23:01

我来回答

3个回答

热心网友 时间:2022-04-27 16:32

真服了你了。。。。。给你再加个转换的方法总行了吧??!

public class Fraction
{
ulong divisor;
ulong dividend;

/// <summary>
/// 分母
/// </summary>
public ulong Divisor
{
get
{
return divisor;
}
set
{
if (value != 0)
divisor = value;
else
throw new Exception("分母不能为0.");
}
}

/// <summary>
/// 分子
/// </summary>
public ulong Dividend
{
get
{
return dividend;
}
set
{
dividend = value;
}

}

public double Value
{
get
{
return (double)Dividend / (double)Divisor;
}
}

public override string ToString()
{
return dividend.ToString() + "/" + divisor.ToString();
}

/// <summary>
/// 构造函数
/// </summary>
public Fraction() { }

/// <summary>
/// 将string转成Fraction
/// </summary>
/// <param name="numberString">分数字符串</param>
/// <returns> Fraction 实例,如果转换失败,返回null</returns>
static public Fraction ConvertToFraction(string numberString)
{
if (string.IsNullOrEmpty(numberString))
return null;
string[] result = numberString.Split('/');
if (result.Length != 2)
return null;
ulong divisor, dividend;
try
{
divisor = Convert.ToUInt64(result[1]);
dividend = Convert.ToUInt64(result[0]);
}
catch
{
return null;
}
if (divisor == 0)
return null;

Fraction fraction = new Fraction();
fraction.dividend = dividend;
fraction.divisor = divisor;
return fraction;

}

/// <summary>
/// 加法
/// </summary>
/// <param name="fraction"></param>
/// <returns></returns>
public Fraction Add(Fraction fraction)
{

Fraction result = new Fraction();
result.Divisor = minCommonMultiple(this.Divisor, fraction.Divisor);
result.Dividend = this.Dividend * result.Divisor / this.Divisor + fraction.Dividend * result.Divisor / fraction.Divisor;
return Simplify(result);
}

/// <summary>
/// 减法
/// </summary>
/// <param name="fraction"></param>
/// <returns></returns>
public Fraction Subtract(Fraction fraction)
{

Fraction result = new Fraction();
result.Divisor = minCommonMultiple(this.Divisor, fraction.Divisor);
result.Dividend = this.Dividend * result.Divisor / this.Divisor - fraction.Dividend *

result.Divisor / fraction.Divisor;
return Simplify(result);
}
/// <summary>
/// 乘法
/// </summary>
/// <param name="fraction"></param>
/// <returns></returns>
public Fraction Multiply(Fraction fraction)
{
Fraction result = new Fraction();
result.Divisor = this.Divisor * fraction.Divisor;
result.Dividend = this.Dividend * fraction.Dividend;
return Simplify(result);
}
/// <summary>
/// 除法
/// </summary>
/// <param name="fraction"></param>
/// <returns></returns>
public Fraction Divide(Fraction fraction)
{
Fraction result = new Fraction();
result.Divisor = this.Divisor * fraction.Dividend;
result.Dividend = this.Dividend * fraction.Divisor;
return Simplify(result);
}
/// <summary>
/// 最小公倍数
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
private static ulong minCommonMultiple(ulong num1, ulong num2)
{
ulong mcd = maxCommonDivisor(num1, num2);
if (mcd == 1)
return num1 * num2;
return num1 * num2 / mcd;
}

/// <summary>
/// 最大公约数
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
private static ulong maxCommonDivisor(ulong num1, ulong num2)
{

ulong min, max;
if (num1 < num2)
{
min = num1;
max = num2;
}
else
{
min = num2;
max = num1;
}
double tmp = ((double)max / (double)min);
ulong tmp2 = (ulong)tmp;
if (tmp == (double)tmp2)
{
return tmp2;
}
return 1;
}
/// <summary>
/// 化简
/// </summary>
/// <param name="fraction"></param>
/// <returns></returns>
static public Fraction Simplify(Fraction fraction)
{
ulong div = maxCommonDivisor(fraction.Divisor, fraction.Dividend);
fraction.Divisor /= div;
fraction.Dividend /= div;
return fraction;
}
}

示例:
string text1 = "1/3";
string text2 = "1/4";

Fraction a = Fraction.ConvertToFraction(text1);
Fraction b = Fraction.ConvertToFraction(text2);
if (a != null && b != null)
{
Fraction c = a.Add(b);
Console.WriteLine(c.Value);
Console.WriteLine(c.ToString());
}
else
{
Console.WriteLine("Convert is invalid.");
}

你实际使用中,把text1 ,text2换成你的文本值,把c的ToString()赋值给你显示结果的文本,总OK了吧??

热心网友 时间:2022-04-27 17:50

public class MyTextBox : TextBox
{

public void SetValue(double value)
{
//在这里将数字转换为分数:
// value=1.5

return "1/5";

}

}

热心网友 时间:2022-04-27 19:25

没有必要吧?碰上一些麻烦的数就倒霉了,比如231/700,这个分数的大小不是很直观了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
折儿是什么意思? 什么叫饭折? 饭折是什么意思 私募股权基金6种模式 私募投资业务管理系统 火山仙泉天然矿泉水产品特点 用苏打片带吃带洗真的能生男孩吗 凡山天然苏打水怎么样 美的面包机和面要多久 美的面包机和面的时间要多长 美的面包机怎么用手动操作 asp代码 成绩90分以上显示绿色,60-90分显示黑色,60分以下显示红色。谢谢! 如何用asp.net统计分数 通过德国ASP审核,是不是可以申请德国所有大学。名牌大学有什么要求? 莒县浮来春三九集团出品的九加红38度白酒多少钱啊? 浮来春生化酒厂在哪 浮来春黄金陶52度1,5l多少钱 莒县浮来春三九集团出品的九加红多少钱38度白酒多少钱啊? 浮来春勿忘在莒酒多钱一瓶 浮来春酒厂老总是谁 浮来香,典藏,三号,38度多少钱? 65度浮来春水泥壶价格2.86升的多少钱 浮来春酒 爷爷的最爱三十二度价格? 请问风月同天是什么意思啊? 山川一曲风月同天用地理角度怎么理解这句话的含义? 医无惧警无畏民齐心,翻译成白话文的意思? 山川异地,风月同天的意思是什么? 学php程序员要多久 网上赚钱骗局如何分辨?东方头条赚钱推荐吗? 东方头条是骗人的吗?兑换了产品没人发货。钱收走了 求flash制作文字鼠标跟随效果,初学者,麻烦给个详细点的教程,谢谢 asp中有5个分数,去掉一个最高分,去掉一个最低分,求平均分 asp成绩统计: 我是菜鸟、求asp成绩统计代码 ASP考试系统中计算分数的代码? asp:查询每个学生的各科成绩,总分,平均分的sql语句 不二鸡爪的做法 asp 如何对access数据库中的成绩进行排名并显示出:姓名,分数,名次?谢谢! 此图二鸡爪PS过吗 asp 如何求得百分数 二中鸡脚的做法视频 思茅二中鸡脚的做法 思茅二中鸡脚的做法是什么? 二中鸡脚怎么样 二中鸡爪提香防腐的添加剂是什么 二中鸡脚的二中鸡脚简介 二中二中鸡脚一般多少钱鸡脚多少钱一桶 QQ群打赏看图片的功能没有了吗 之前在QQ里面看见个要钱才能进去的图片,是什么软件的作用。不知道是哪位群友发的。 为什么大家不能给我打赏? 谁有喜马拉雅主播探月的粉丝群啊? 支付宝账单显示,打赏红包,活动红包,还有群发红包是什么意思?