本文整理汇总了C#中HugeFloat类的典型用法代码示例。如果您正苦于以下问题:C# HugeFloat类的具体用法?C# HugeFloat怎么用?C# HugeFloat使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HugeFloat类属于命名空间,在下文中一共展示了HugeFloat类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FloatCompareToNonExpression
public void FloatCompareToNonExpression()
{
using (var a = new HugeFloat("-222509832503450298345029835740293845721.57898962467957"))
{
a.CompareTo("abc");
}
}
示例2: CompareToCalculatedToDefaultPrecision
public void CompareToCalculatedToDefaultPrecision()
{
using (var a = new HugeFloat(1))
using (var b = new HugeFloat(13))
using (var c = new HugeFloat("12345234589234059823475029384572323"))
using (var d = HugeFloat.Allocate(256))
{
ShiftLeftBy62(c);
d.Value = c;
var expr = a / b + c;
Assert.AreEqual(0, c.CompareTo(expr)); //to precision of c
Assert.AreEqual(0, expr.CompareTo(c)); //to precision of c
Assert.IsFalse(expr > c); //to precision of c
Assert.IsTrue(c == expr); //to precision of c
Assert.AreEqual(0, (c + 0).CompareTo(expr)); //to default precision
Assert.AreEqual(0, expr.CompareTo(c + 0)); //to default precision
Assert.IsFalse(expr > c + 0); //to default precision
Assert.IsTrue(c + 0 == expr); //to default precision
HugeFloat.DefaultPrecision = 256;
Assert.AreEqual(0, c.CompareTo(expr)); //to precision of c
Assert.AreEqual(0, expr.CompareTo(c)); //to precision of c
Assert.IsTrue(c == expr); //to precision of c
Assert.IsFalse(expr > c); //to precision of c
Assert.AreEqual(-1, d.CompareTo(expr)); //to precision of d
Assert.AreEqual(1, expr.CompareTo(d)); //to precision of d
Assert.IsFalse(d == expr); //to precision of d
Assert.IsTrue(expr > d); //to precision of d
Assert.AreEqual(-1, (c * 1).CompareTo(expr)); //to default precision
Assert.AreEqual(1, expr.CompareTo(c + 0)); //to default precision
Assert.IsFalse(c + 0 == expr); //to default precision
Assert.IsTrue(expr > c + 0); //to default precision
HugeFloat.DefaultPrecision = 128;
}
}
示例3: FloatAssignDouble
public void FloatAssignDouble()
{
using(var a = new HugeFloat())
{
a.SetTo(22250983250345.125);
Assert.IsTrue(a == 22250983250345.125);
}
}
示例4: RationalAssignFloat
public void RationalAssignFloat()
{
using (var a = new HugeFloat("9363833093638312937.25"))
using (var b = new HugeRational())
{
b.SetTo(a);
Assert.AreEqual("37455332374553251749/4", b.ToString());
}
}
示例5: FloatAssignRational
public void FloatAssignRational()
{
using (var a = new HugeRational(1, 3))
using (var b = new HugeFloat())
{
b.SetTo(a);
FloatAssert.AreEqual(".33333333333333333333333333333333333333333333333333333333333333333333333333333333333", b);
}
}
示例6: FloatAssignInt
public void FloatAssignInt()
{
using (var a = new HugeInt("222509832503450298345029835740293845720"))
using (var b = new HugeFloat())
{
b.SetTo(a);
FloatAssert.AreEqual("222509832503450298345029835740293845720.", b);
}
}
示例7: RationalAssignFloat2
public void RationalAssignFloat2()
{
using(var a = new HugeFloat("222509832503450298342455029.125"))
using(var b = new HugeRational("1/3"))
{
b.SetTo(a);
Assert.AreEqual("1780078660027602386739640233/8", b.ToString());
}
}
示例8: FloatAssignCopy
public void FloatAssignCopy()
{
var s = "-1.22250983250345029834502983574029384572";
using (var a = new HugeFloat(s))
using (var b = new HugeFloat())
{
b.Value = a;
FloatAssert.AreEqual(s, b);
}
}
示例9: FloatCompareToHugeFloat
public void FloatCompareToHugeFloat()
{
using (var a = new HugeFloat("-22250983250345029834503.9835740293845721345345354"))
using (var b = new HugeFloat("22250983250345029834502.9835740293845721345345354"))
{
Assert.AreEqual(1, Math.Sign(b.CompareTo(a)));
Assert.AreEqual(-1,Math.Sign(a.CompareTo(b + 1)));
Assert.AreEqual(0, Math.Sign((a + 1).CompareTo(-b)));
Assert.AreEqual(1, Math.Sign(a.CompareTo(null)));
}
}
示例10: FloatCompareToExpression
public void FloatCompareToExpression()
{
using (var a = new HugeFloat("-22250983250345029834503.9835740293845721345345354"))
using (var b = new HugeFloat("22250983250345029834502.9835740293845721345345354"))
{
Assert.AreEqual(1, Math.Sign(((IComparable<FloatExpression>)b).CompareTo(a)));
Assert.AreEqual(-1,Math.Sign(((IComparable<FloatExpression>)a).CompareTo(b)));
Assert.AreEqual(1, Math.Sign(((IComparable<FloatExpression>)a).CompareTo(null)));
Assert.AreEqual(0, Math.Sign(((IComparable<FloatExpression>)(a + 1)).CompareTo(-b)));
}
}
示例11: FloatAddHugeFloat
public void FloatAddHugeFloat()
{
using (var a = new HugeFloat("22250983250345029834502983.5740293845720"))
using (var b = new HugeFloat("2229874359879827.30594288574029879874539"))
using (var c = new HugeFloat(a + b))
{
FloatAssert.AreEqual("22250983252574904194382810.87997227031229879874539", c);
c.Value = a + (b + 1);
FloatAssert.AreEqual("22250983252574904194382811.87997227031229879874539", c);
}
}
示例12: FloatTruncate
public void FloatTruncate()
{
using(var a = new HugeFloat("-9023409872309847509847.9385345098345"))
using(var b = new HugeFloat())
{
b.Value = a.Truncate();
FloatAssert.AreEqual("-9023409872309847509847", b);
b.Value = (-a).Truncate();
FloatAssert.AreEqual("9023409872309847509847", b);
}
}
示例13: FloatCompareToLimb
public void FloatCompareToLimb()
{
using (var a = new HugeFloat(Platform.Select("-22250982876541", "-222509821")))
{
var b = Platform.Ui(22250982876540, 222509820);
Assert.AreEqual(-1,Math.Sign(a.CompareTo(b)));
Assert.AreEqual(-1,Math.Sign(a.CompareTo(b + 1)));
Assert.AreEqual(0, Math.Sign((-(a + 1)).CompareTo(b)));
Assert.AreEqual(0, Math.Sign((-a).CompareTo(b + 1)));
Assert.AreEqual(1, Math.Sign((-a).CompareTo(b)));
}
}
示例14: FloatAddSignedLimb
public void FloatAddSignedLimb()
{
using (var a = new HugeFloat("22250983250345029834502983.5740293845720"))
using (var c = new HugeFloat())
{
var b = Platform.Si(-4288574029879874539, -1288574029);
var expected = Platform.Select("22250978961770999954628444.5740293845720", "22250983250345028545928954.5740293845720");
c.Value = a + b;
FloatAssert.AreEqual(expected, c);
c.Value = b + a;
FloatAssert.AreEqual(expected, c);
}
}
示例15: FloatAddLimb
public void FloatAddLimb()
{
using (var a = new HugeFloat("22250983250345029834502983.5740293845720"))
using (var c = new HugeFloat())
{
var b = Platform.Ui(4288574029879874539UL, 4288574029U);
var expected = Platform.Select("22250987538919059714377522.5740293845720", "22250983250345034123077012.5740293845720");
c.Value = a + b;
FloatAssert.AreEqual(expected, c);
c.Value = b + a;
FloatAssert.AreEqual(expected, c);
}
}