public final class Rational extends Number implements Sequential<Rational,Rational,Void>, ComparableUsing<Rational>, Serializable
BigInteger
to maintain arbitrary precision. Note as a
performance measure this class does not maintain its value in reduced form. You must call reduce()
to get a separate instance for the reduced form. Call isReduced()
to determine if an instance is in reduced
form.
This class implements arithmetic, negation, and relational operators via operator overloading provided by the
manifold-ext dependency.
Use the CoercionConstants
and MetricScaleUnit
classes to conveniently use literal
values as Rational
numbers:
import static manifold.science.measures.MetricScaleUnit.M;
import static manifold.science.util.CoercionConstants.r;
...
Rational pi = 3.14r;
Rational oneThird = 1r/3;
Rational yocto = "1/1000000000000000000000000"r;
Rational fiveMillion = 5M;
WARNING: this class is under development and should be considered experimental.ComparableUsing.EqualityMode, ComparableUsing.Operator
Modifier and Type | Field and Description |
---|---|
static Rational |
HALF |
static Rational |
ONE |
static Rational |
TEN |
static Rational |
ZERO |
byteValue, shortValue
clone, emptyArray, finalize, getClass, jailbreak, notify, notifyAll, wait, wait, wait
compareToUsing
public static final Rational ZERO
public static final Rational ONE
public static final Rational TEN
public static final Rational HALF
public static Rational get(int numerator)
public static Rational get(int numerator, int denominator)
public static Rational get(long numerator)
public static Rational get(long numerator, long denominator)
public static Rational get(float f)
public static Rational get(double d)
public static Rational get(BigInteger numerator)
public static Rational get(BigDecimal bd)
public static Rational get(BigInteger numerator, BigInteger denominator)
public boolean isReduced()
true
if this instance is in reduced form.public Rational reduce()
public BigInteger getNumerator()
public BigInteger getDenominator()
public BigInteger wholePart()
public Rational fractionPart()
public double doubleValue()
doubleValue
in class Number
public float floatValue()
floatValue
in class Number
public BigInteger toBigInteger()
public BigDecimal toBigDecimal()
public BigDecimal toBigDecimal(MathContext mc)
public Rational plus(int i)
public Rational plus(long l)
public Rational plus(float f)
public Rational plus(double d)
public Rational plus(BigInteger bg)
public Rational plus(BigDecimal bd)
public Rational minus(int i)
public Rational minus(long l)
public Rational minus(float f)
public Rational minus(double d)
public Rational minus(BigInteger bi)
public Rational minus(BigDecimal bd)
public Rational times(int i)
public Rational times(long l)
public Rational times(float f)
public Rational times(double d)
public Rational times(BigInteger bi)
public Rational times(BigDecimal bd)
public Rational div(int i)
public Rational div(long l)
public Rational div(float f)
public Rational div(double d)
public Rational div(BigInteger bi)
public Rational div(BigDecimal bd)
public Rational rem(int i)
public Rational rem(long l)
public Rational rem(float f)
public Rational rem(double d)
public Rational rem(BigInteger bi)
public Rational rem(BigDecimal bd)
public Rational unaryMinus()
public Rational inc()
++
public Rational dec()
--
public Rational invert()
public Rational abs()
public Rational pow(int exponent)
@Deprecated public Rational sqrt()
public boolean isInteger()
public Rational nextInSequence(Rational step, Void unit)
nextInSequence
in interface Sequential<Rational,Rational,Void>
public Rational nextNthInSequence(Rational step, Void unit, int index)
nextNthInSequence
in interface Sequential<Rational,Rational,Void>
public Rational previousInSequence(Rational step, Void unit)
previousInSequence
in interface Sequential<Rational,Rational,Void>
public Rational previousNthInSequence(Rational step, Void unit, int index)
previousNthInSequence
in interface Sequential<Rational,Rational,Void>
public int signum()
public int compareTo(Rational that)
compareTo
in interface Comparable<Rational>
public ComparableUsing.EqualityMode equalityMode()
compareTo()
for ==
and !=
operators.equalityMode
in interface ComparableUsing<Rational>
public String toFractionString()
public String toMixedString()
public String toDecimalString()
BigDecimal
and calls BigDecimal.toString()
public String toPlainDecimalString()
BigDecimal
and calls BigDecimal.toPlainString()
public String toEngineeringString()
BigDecimal
and calls BigDecimal.toEngineeringString()
Copyright © 2024. All rights reserved.