相关疑难解决方法(0)

C#中Java BigDecimal类的等价物是什么?

BigDecimal是一个java.math包中的类,它具有处理大量特定规模的许多好处.c#中是否存在具有此功能的等效类或数据类型.

c# java bigdecimal equivalent

45
推荐指数
4
解决办法
5万
查看次数

划分BigIntegers返回double

我想计算一条线的斜率.

public sealed class Point
{
    public System.Numerics.BigInteger x = 0;
    public System.Numerics.BigInteger y = 0;

    public double CalculateSlope (Point point)
    {
        return ((point.Y - this.Y) / (point.X - this.X));
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道BigInteger有一个DivRem函数可以返回除法结果加上余数,但我不知道如何应用它来得到一个double.我正在处理的数字远远超出了Int64.MaxValue的范围,因此剩余部分本身可能超出了传统划分的范围.

编辑:不确定它是否有帮助,但我只处理正整数(> = 1).

重要提示:我只需要几个小数点的精度(5应该足够我的目的).

.net c# biginteger division

7
推荐指数
2
解决办法
2481
查看次数

地板整数除法

在 C# 中是否有一种简单、高效和正确(即不涉及到/从 double 转换)的方法来进行地板整数除法(例如Python 提供)。

换句话说,以下的有效版本,不会遭受长/双转换损失。

(long)(Math.Floor((double) a / b))
Run Code Online (Sandbox Code Playgroud)

还是必须自己实现它,例如

static long FlooredIntDiv(long a, long b)
{
    if (a < 0)
    {
        if (b > 0)
            return (a - b + 1) / b;
        // if (a == long.MinValue && b == -1) // see *) below
        //    throw new OverflowException();
    }
    else if (a > 0)
    {
        if (b < 0)
            return (a - b - 1) / b;
    }
    return a / …
Run Code Online (Sandbox Code Playgroud)

.net c# math integer-arithmetic

7
推荐指数
1
解决办法
8062
查看次数

支持分数的大数字

我需要ac#number可以处理非常大的数字,但也需要分数支持,我看了.NET 4.0中的System.Numberics.BigInteger,但我不能让它与分数一起工作.

something i = 2;
something j = 5;
something k = i/j; //should be 0.4
Run Code Online (Sandbox Code Playgroud)

当我试着

 BigInteger i = 2;
 BigInteger j = 5;
 double d = (double)(i/j); //d is 0.0
Run Code Online (Sandbox Code Playgroud)

有人知道这样的图书馆吗?

c# numeric

4
推荐指数
1
解决办法
4469
查看次数