类 BigFraction

java.lang.Object
java.lang.Number
org.hipparchus.fraction.BigFraction
所有已实现的接口:
Serializable, Comparable<BigFraction>, FieldElement<BigFraction>

public class BigFraction extends Number implements FieldElement<BigFraction>, Comparable<BigFraction>, Serializable
代表一个没有溢出的有理数。此类是不可变的。
另请参阅:
  • 字段详细资料

    • TWO

      public static final BigFraction TWO
      代表“2 / 1”的分数。
    • ONE

      public static final BigFraction ONE
      代表“1”的分数。
    • ZERO

      public static final BigFraction ZERO
      代表“0”的分数。
    • MINUS_ONE

      public static final BigFraction MINUS_ONE
      代表“-1 / 1”的分数。
    • FOUR_FIFTHS

      public static final BigFraction FOUR_FIFTHS
      代表“4/5”的分数。
    • ONE_FIFTH

      public static final BigFraction ONE_FIFTH
      代表“1/5”的分数。
    • ONE_HALF

      public static final BigFraction ONE_HALF
      代表“1/2”的分数。
    • ONE_QUARTER

      public static final BigFraction ONE_QUARTER
      代表“1/4”的分数。
    • ONE_THIRD

      public static final BigFraction ONE_THIRD
      代表“1/3”的分数。
    • THREE_FIFTHS

      public static final BigFraction THREE_FIFTHS
      代表“3/5”的分数。
    • THREE_QUARTERS

      public static final BigFraction THREE_QUARTERS
      代表“3/4”的分数。
    • TWO_FIFTHS

      public static final BigFraction TWO_FIFTHS
      代表“2/5”的分数。
    • TWO_QUARTERS

      public static final BigFraction TWO_QUARTERS
      代表“2/4”的分数。
    • TWO_THIRDS

      public static final BigFraction TWO_THIRDS
      代表“2/3”的分数。
  • 构造器详细资料

    • BigFraction

      public BigFraction(BigInteger num)

      创建一个等同于传递的BigIntegerBigFraction,即“num / 1”。

      参数:
      num - 分子。
    • BigFraction

      public BigFraction(BigInteger num, BigInteger den)
      创建一个给定分子和分母为BigIntegerBigFraction。将BigFraction约简为最低项。
      参数:
      num - 分子,不能为null
      den - 分母,不能为null
      抛出:
      MathIllegalArgumentException - 如果分母为零。
      NullArgumentException - 如果任一参数为null
    • BigFraction

      public BigFraction(double value) throws MathIllegalArgumentException
      给定双精度值创建一个分数。

      此构造函数与BigFraction(double, double, int)的行为不同。它精确地转换双精度值,考虑其内部位表示。这适用于除NaN和无穷大之外的所有值,并且不需要任何循环或收敛阈值。

      由于此转换是精确的,而双精度数有时会被近似,因此在某些情况下创建的分数可能看起来很奇怪。例如,调用new BigFraction(1.0 / 3.0)并不会创建分数1/3,而是创建分数6004799503160661 / 18014398509481984,因为传递给构造函数的双精度数并非完全等于1/3(此数字无法在IEEE754中精确存储)。

      参数:
      value - 要转换为分数的双精度值。
      抛出:
      MathIllegalArgumentException - 如果值为NaN或无穷大
      另请参阅:
    • BigFraction

      public BigFraction(double value, double epsilon, int maxIterations) throws MathIllegalStateException
      给定双精度值和允许的最大误差创建一个分数。

      * 参考:

      参数:
      value - 要转换为分数的双精度值。
      epsilon - 允许的最大误差。结果分数在绝对值上与valueepsilon之内。
      maxIterations - 收敛数的最大数量。
      抛出:
      MathIllegalStateException - 如果连分数未能收敛。
      另请参阅:
    • BigFraction

      public BigFraction(double value, long maxDenominator) throws MathIllegalStateException
      给定双精度值和最大分母创建一个分数。

      * 参考:

      参数:
      value - 要转换为分数的双精度值。
      maxDenominator - 分母的最大允许值。
      抛出:
      MathIllegalStateException - 如果连分数未能收敛。
    • BigFraction

      public BigFraction(int num)

      创建一个等同于传递的intBigFraction,即“num / 1”。

      参数:
      num - 分子。
    • BigFraction

      public BigFraction(int num, int den)

      给定简单int的分子和分母创建一个BigFraction。将BigFraction约简为最低项。

      参数:
      num - 分子。
      den - 分母。
    • BigFraction

      public BigFraction(long num)

      创建一个等同于传递的longBigFraction,即“num / 1”。

      参数:
      num - 分子。
    • BigFraction

      public BigFraction(long num, long den)

      给定简单long的分子和分母创建一个BigFraction。将BigFraction约简为最低项。

      参数:
      num - 分子。
      den - 分母。
  • 方法详细资料

    • convergents

      public static Stream<BigFraction> convergents(double value, int maxConvergents)
      从实数生成一个收敛数的stream
      参数:
      value - 要近似的值
      maxConvergents - 最大收敛数。
      返回:
      近似valueBigFraction收敛数的stream
      从以下版本开始:
      2.1
    • convergent

      public static Pair<BigFraction,Boolean> convergent(double value, int maxConvergents, BigFraction.ConvergenceTest convergenceTest)
      返回用于近似给定值的收敛步骤系列的最后一个元素。

      系列在满足给定的convergenceTest的第一步或最多maxConvergents元素后终止。返回的Pair由终端的BigFraction和一个Boolean组成,指示它是否满足给定的收敛测试。如果返回的pair的值为false,则检查了位置maxConvergents处的元素,但未能满足convergenceTest。然后调用者可以决定是否接受结果,否则将其丢弃。如果只关注终端元素,则此方法通常比convergents(double, int)更快。

      参数:
      value - 要近似的值
      maxConvergents - 要检查的最大收敛数
      convergenceTest - 如果系列在某一步收敛的测试
      返回:
      收敛数系列的最后一个元素和指示该元素是否满足指定收敛测试的布尔值对
    • getReal

      public double getReal()
      获取数字的实值。
      指定者:
      getReal 在接口中 FieldElement<BigFraction>
      返回:
      实值
    • getReducedFraction

      public static BigFraction getReducedFraction(int numerator, int denominator)

      使用分数Y/Z的2个部分创建一个BigFraction实例。

      任何负号都解析为在分子上。

      参数:
      numerator - 分子,例如“三分之一”中的三。
      denominator - 分母,例如“三分之一”中的一。
      返回:
      一个新的分数实例,分子和分母已约简。
      抛出:
      ArithmeticException - 如果分母为
    • abs

      public BigFraction abs()

      返回此BigFraction的绝对值。

      返回:
      作为BigFraction的绝对值。
    • isInteger

      public boolean isInteger()
      检查分数是否为整数。
      返回:
      如果分数是整数,则为true
    • signum

      public int signum()
      返回此BigFraction的signum函数。

      如果指定的值为负,则返回值为-1;如果指定的值为零,则返回值为0;如果指定的值为正,则返回值为1。

      返回:
      BigFraction的signum函数
      从以下版本开始:
      1.7
    • add

      public BigFraction add(BigInteger bg) throws NullArgumentException

      将此分数的值添加到传递的BigInteger,以最简形式返回结果。

      参数:
      bg - 要添加的BigInteger,不能为null
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果BigIntegernull
    • add

      public BigFraction add(int i)

      将此分数的值添加到传递的整数中,并以简化形式返回结果。

      参数:
      i - 要添加的整数
      返回:
      具有结果值的BigFraction实例。
    • add

      public BigFraction add(long l)

      将此分数的值添加到传递的long中,并以简化形式返回结果。

      参数:
      l - 要添加的long
      返回:
      具有结果值的BigFraction实例。
    • add

      public BigFraction add(BigFraction fraction)

      将此分数的值添加到另一个分数中,并以简化形式返回结果。

      指定者:
      add 在接口中 FieldElement<BigFraction>
      参数:
      fraction - 要添加的BigFraction,不得为null
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果BigFractionnull
    • bigDecimalValue

      public BigDecimal bigDecimalValue()

      将分数作为BigDecimal返回。这将计算分子除以分母得到的分数。

      返回:
      分数作为BigDecimal
      抛出:
      ArithmeticException - 如果精确商不具有终止的十进制扩展。
      另请参阅:
    • bigDecimalValue

      public BigDecimal bigDecimalValue(RoundingMode roundingMode)

      按照传递的舍入模式将分数作为BigDecimal返回。这将计算分子除以分母得到的分数。

      参数:
      roundingMode - 要应用的舍入模式。参见BigDecimal常量。
      返回:
      分数作为BigDecimal
      抛出:
      IllegalArgumentException - 如果roundingMode不表示有效的舍入模式。
      另请参阅:
    • bigDecimalValue

      public BigDecimal bigDecimalValue(int scale, RoundingMode roundingMode)

      按照传递的比例和舍入模式将分数作为BigDecimal返回。这将计算分子除以分母得到的分数。

      参数:
      scale - 要返回的BigDecimal商的比例。有关更多信息,请参见BigDecimal
      roundingMode - 要应用的舍入模式。参见BigDecimal常量。
      返回:
      分数作为BigDecimal
      另请参阅:
    • compareTo

      public int compareTo(BigFraction object)

      根据大小将此对象与另一个对象进行比较。

      指定者:
      compareTo 在接口中 Comparable<BigFraction>
      参数:
      object - 要比较的对象,不得为null
      返回:
      如果此对象小于object,则为-1;如果此对象大于object,则为+1;如果它们相等,则为0。
      另请参阅:
    • divide

      public BigFraction divide(BigInteger bg)

      将此分数的值除以传递的BigInteger,即this * 1 / bg,并以简化形式返回结果。

      参数:
      bg - 要除以的BigInteger,不得为null
      返回:
      具有结果值的BigFraction实例
      抛出:
      NullArgumentException - 如果BigIntegernull
      MathRuntimeException - 如果要除以的分数为零
    • divide

      public BigFraction divide(int i)

      将此分数的值除以传递的int,即this * 1 / i,并以简化形式返回结果。

      参数:
      i - 要除以的int
      返回:
      具有结果值的BigFraction实例
      抛出:
      MathRuntimeException - 如果要除以的分数为零
    • divide

      public BigFraction divide(long l)

      将此分数的值除以传递的long,即this * 1 / l,并以简化形式返回结果。

      参数:
      l - 要除以的long
      返回:
      具有结果值的BigFraction实例
      抛出:
      MathRuntimeException - 如果要除以的分数为零
    • divide

      public BigFraction divide(BigFraction fraction)

      将此分数的值除以另一个分数,并以简化形式返回结果。

      指定者:
      divide 在接口中 FieldElement<BigFraction>
      参数:
      fraction - 要除以的分数,不得为null
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果fractionnull
      MathRuntimeException - 如果要除以的分数为零
    • doubleValue

      public double doubleValue()

      将分数作为double返回。这将计算分子除以分母得到的分数。

      指定者:
      doubleValue 在类中 Number
      返回:
      分数作为double
      另请参阅:
    • equals

      public boolean equals(Object other)

      测试两个分数是否相等。如果两个分数的最简分子和分母相同,则认为两个分数相等。

      覆盖:
      equals 在类中 Object
      参数:
      other - 要与此分数相等进行比较的分数,可以为null
      返回:
      如果两个分数相等,则为true;如果对象为null,不是BigFraction的实例,或不等于此分数实例,则为false。
      另请参阅:
    • floatValue

      public float floatValue()

      将分数作为float返回。这将计算分子除以分母得到的分数。

      指定者:
      floatValue 在类中 Number
      返回:
      作为float的分数。
      另请参阅:
    • getDenominator

      public BigInteger getDenominator()

      BigInteger的形式访问分母。

      返回:
      作为BigInteger的分母。
    • getDenominatorAsInt

      public int getDenominatorAsInt()

      int的形式访问分母。

      返回:
      作为int的分母。
    • getDenominatorAsLong

      public long getDenominatorAsLong()

      long的形式访问分母。

      返回:
      作为long的分母。
    • getNumerator

      public BigInteger getNumerator()

      BigInteger的形式访问分子。

      返回:
      作为BigInteger的分子。
    • getNumeratorAsInt

      public int getNumeratorAsInt()

      int的形式访问分子。

      返回:
      作为int的分子。
    • getNumeratorAsLong

      public long getNumeratorAsLong()

      long的形式访问分子。

      返回:
      作为long的分子。
    • hashCode

      public int hashCode()

      为分数获取哈希码。

      覆盖:
      hashCode 在类中 Object
      返回:
      此对象的哈希码值。
      另请参阅:
    • intValue

      public int intValue()

      将分数作为int返回。这将返回分数的整数部分。

      指定者:
      intValue 在类中 Number
      返回:
      分数的整数部分。
      另请参阅:
    • longValue

      public long longValue()

      将分数作为long返回。这将返回分数的整数部分。

      指定者:
      longValue 在类中 Number
      返回:
      分数的整数部分。
      另请参阅:
    • multiply

      public BigFraction multiply(BigInteger bg)

      将此分数的值乘以传递的BigInteger,以简化形式返回结果。

      参数:
      bg - 要乘以的BigInteger
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果bgnull
    • multiply

      public BigFraction multiply(int i)

      将此分数的值乘以传递的int,以简化形式返回结果。

      指定者:
      multiply 在接口中 FieldElement<BigFraction>
      参数:
      i - 要乘以的int
      返回:
      具有结果值的BigFraction实例。
    • multiply

      public BigFraction multiply(long l)

      将此分数的值乘以传递的long,以简化形式返回结果。

      参数:
      l - 要乘以的long
      返回:
      具有结果值的BigFraction实例。
    • multiply

      public BigFraction multiply(BigFraction fraction)

      将此分数的值乘以另一个分数,以简化形式返回结果。

      指定者:
      multiply 在接口中 FieldElement<BigFraction>
      参数:
      fraction - 要乘以的分数,不得为null
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果fractionnull
    • negate

      public BigFraction negate()

      返回此分数的加法逆元,以简化形式返回结果。

      指定者:
      negate 在接口中 FieldElement<BigFraction>
      返回:
      此分数的负数。
    • percentageValue

      public double percentageValue()

      将分数百分比作为double返回。这将计算分子除以分母乘以100得到的百分比。

      返回:
      作为double的分数百分比。
    • pow

      public BigFraction pow(int exponent)

      返回一个值为(this<sup>exponent</sup>)BigFraction,以简化形式返回结果。

      参数:
      exponent - 要将此BigFraction提高到的指数。
      返回:
      thisexponent
    • pow

      public BigFraction pow(long exponent)

      返回一个值为thisexponentBigFraction,以简化形式返回结果。

      参数:
      exponent - 要将此BigFraction提高到的指数。
      返回:
      thisexponent作为BigFraction
    • pow

      public BigFraction pow(BigInteger exponent)

      返回一个值为thisexponentBigFraction,以简化形式返回结果。

      参数:
      exponent - 要将此BigFraction提高到的指数。
      返回:
      thisexponent作为BigFraction
    • pow

      public double pow(double exponent)

      返回一个值为thisexponentdouble,以简化形式返回结果。

      参数:
      exponent - 要将此BigFraction提高到的指数。
      返回:
      thisexponent
    • reciprocal

      public BigFraction reciprocal()

      返回此分数的乘法逆元。

      指定者:
      reciprocal 在接口中 FieldElement<BigFraction>
      返回:
      此分数的倒数。
    • reduce

      public BigFraction reduce()

      将此BigFraction约简为最低项。

      返回:
      简化后的BigFraction。如果分数可以约简,则不会更改任何内容。
    • subtract

      public BigFraction subtract(BigInteger bg)

      从此BigFraction的值中减去BigInteger的值,以简化形式返回结果。

      参数:
      bg - 要减去的BigInteger的值,不能为null
      返回:
      具有结果值的BigFraction实例。
      抛出:
      NullArgumentException - 如果BigIntegernull
    • subtract

      public BigFraction subtract(int i)

      从此BigFraction的值中减去integer的值,以简化形式返回结果。

      参数:
      i - 要减去的integer的值。
      返回:
      具有结果值的BigFraction实例。
    • subtract

      public BigFraction subtract(long l)

      从此BigFraction的值中减去long的值,以简化形式返回结果。

      参数:
      l - 要减去的long的值。
      返回:
      具有结果值的BigFraction实例。
    • subtract

      public BigFraction subtract(BigFraction fraction)

      从另一个分数的值中减去此分数的值,以简化形式返回结果。

      指定者:
      subtract 在接口中 FieldElement<BigFraction>
      参数:
      fraction - 要减去的BigFraction,不能为null
      返回:
      具有结果值的BigFraction实例
      抛出:
      NullArgumentException - 如果fractionnull
    • toString

      public String toString()

      返回表示此分数的String,即 "num / dem" 或如果分母为一则只返回 "num"。

      覆盖:
      toString 在类中 Object
      返回:
      分数的字符串表示形式。
      另请参阅:
    • getField

      public BigFractionField getField()
      获取实例所属的Field
      指定者:
      getField 在接口中 FieldElement<BigFraction>
      返回:
      实例所属的Field