C#分数的四则运算 代码 帮帮忙吧 一定多给悬赏 谢谢
发布网友
发布时间:2022-04-23 13:16
我来回答
共3个回答
懂视网
时间:2022-04-23 17:38
定义和用法
LN2 属性就是 loge2,即 2 的自然对数,其值近似于 0.69314718055994528623。
语法
Math.LN2
实例
返回 2 的自然对数:
<script type="text/javascript">
document.write("LN2: " + Math.LN2);
</script>
输出:
LN2: 0.6931471805599453
示例:
<html>
<head>
<title>JavaScript Math E Property</title>
</head>
<body>
<script type="text/javascript">
var property_value = Math.E
document.write("Property Value is : " + property_value);
</script>
</body>
</html>
这将产生以下结果:
Property Value is : 2.718281828459045
热心网友
时间:2022-04-23 14:46
+,-,*,/,这些都可以直接用,其他平方根、次方什么的用Math类进行处理:
Math.abs() 计算绝对值。
Math.acos() 计算反余弦值。
Math.asin() 计算反正弦值。
Math.atan() 计算反正切值。
Math.atan2() 计算从x 坐标轴到点的角度。
Math.ceil() 将数字向上舍入为最接近的整数。
Math.cos() 计算余弦值。
Math.exp() 计算指数值。
Math.floor() 将数字向下舍入为最接近的整数。
Math.log() 计算自然对数。
Math.max() 返回两个整数中较大的一个。
Math.min() 返回两个整数中较小的一个。
Math.pow() 计算x 的y 次方。
Math.random() 返回一个0.0 与1.0 之间的伪随机数。
Math.round() 四舍五入为最接近的整数。
Math.sin() 计算正弦值。
Math.sqrt() 计算平方根。
Math.tan() 计算正切值。
Math.E 欧拉(Euler) 常数,自然对数的底(大约为2.718)。
Math.LN2 2 的自然对数(大约为0.693)。
Math.LOG2E e 的以2 为底的对数(大约为1.442)。
Math.LN2 10 的自然对数(大约为2.302)。
Math.LOG10E e 的以10 为底的对数(大约为0.434)。
Math.PI 一个圆的周长与其直径的比值(大约为3.14159)。
Math.SQRT1_2 1/2 的平方根的倒数(大约为0.707)。
Math.SQRT2 2 的平方根(大约为1.414)。
热心网友
时间:2022-04-23 16:04
写了一个分数类给你
public class FenShu
{
public int FenZi { get; set; }
public int FenMu { get; set; }
public static void getTempNum(int a, int b, ref int gongbeishu, ref int gongyueshu)
{
int m = Math.Abs(a);
int n = Math.Abs(b);
int i;
for (i = m < n ? m : n; m % i != 0 || n % i != 0; i--) ;
gongbeishu = m * n / i; // 最小公倍数
gongyueshu = i;//最大公约数
}
public static FenShu operator +(FenShu a, FenShu b)
{
int gy = 0;
int gb = 0;
getTempNum(a.FenMu, b.FenMu, ref gb, ref gy);
int fzA = a.FenZi * (gb / a.FenMu);
fzA = a.FenZi > 0 ? fzA : -fzA;
int fzB = b.FenZi * (gb / b.FenMu);
fzB = b.FenZi > 0 ? fzB : -fzB;
int fz = fzA + fzB;
int fm = gb;
getTempNum(fz, fm, ref gb, ref gy);
fz = fz / gy;
fm = fm / gy;
return new FenShu { FenMu = fm, FenZi = fz };
}
public static FenShu operator -(FenShu a, FenShu b)
{
return a + new FenShu { FenZi = -b.FenZi, FenMu = -b.FenMu };
}
public static FenShu operator *(FenShu a, FenShu b)
{
int fz = a.FenZi * b.FenZi;
int fm = a.FenMu * b.FenMu;
int gy = 0;
int gb = 0;
getTempNum(fz, fm, ref gb, ref gy);
fz = fz / gy;
fm = fm / gy;
if (fz * fm > 0 && fz < 0)
{
fz = -fz;
fm = -fm;
}
return new FenShu { FenMu = fm, FenZi = fz };
}
public static FenShu operator /(FenShu a, FenShu b)
{
return a * new FenShu { FenZi = b.FenMu, FenMu = b.FenZi };
}
}
调用测试:
void TEST()
{
FenShu a = new FenShu { FenMu = 4, FenZi = 1 };
FenShu b = new FenShu { FenMu = 3, FenZi = 1 };
FenShu c1 = a + b; MessageBox.Show("1/4 加 1/3 等于 " + c1.FenZi + "/" + c1.FenMu);
FenShu c2 = a - b; MessageBox.Show("1/4 减 1/3 等于 " + c2.FenZi + "/" + c2.FenMu);
FenShu c3 = a * b; MessageBox.Show("1/4 乘 1/3 等于 " + c3.FenZi + "/" + c3.FenMu);
FenShu c4 = a / b; MessageBox.Show("1/4 除 1/3 等于 " + c4.FenZi + "/" + c4.FenMu);
}
注意:没有考虑负分数和分子分母为0的情况