org.znerd.math
Class RoundingMode
java.lang.Object
|
+--org.znerd.math.RoundingMode
- public abstract class RoundingMode
- extends Object
Rounding mode. This is an abstract base class for actual rounding mode
implementations.
Concrete subclasses must implement
roundImpl(RealNumber,int,int,int).
- Version:
- $Revision: 1.11 $ $Date: 2002/08/16 21:54:40 $
- Author:
- Ernst de Haan (znerd@FreeBSD.org)
|
Constructor Summary |
protected |
RoundingMode(String name,
boolean consistent)
Constructs a new RoundingMode with the specified name. |
|
Method Summary |
String |
getName()
Returns a short, human-presentable, description of this rounding mode. |
boolean |
isConsistent()
Indicates if this rounding mode is consistent. |
boolean |
round(RealNumber number,
int radix,
int digit)
Rounds the specified digit for a number in the specified base. |
protected abstract boolean |
roundImpl(RealNumber number,
int sign,
int radix,
int digit)
Actually rounds the specified digit for a number in the specified base. |
String |
toString()
Returns a textual presentation of this object. |
RoundingMode
protected RoundingMode(String name,
boolean consistent)
throws IllegalArgumentException
- Constructs a new
RoundingMode with the specified name. The
name will be returned by getName().
- Parameters:
name - the name for the rounding mode, not null.consistent - true if this rounding mode always rounds in the same
direction when passed the same arguments.- Throws:
- IllegalArgumentException - if
name == null.
round
public final boolean round(RealNumber number,
int radix,
int digit)
throws IllegalArgumentException
- Rounds the specified digit for a number in the specified base. If the
number to be rounded is zero, then
false is returned.
- Parameters:
number - the number that is being rounded, not null.radix - the radix (or base) for the digit, at least 2, at most
RealNumber.MAXIMUM_RADIX.digit - the digit of which should be determined whether it should be rounded
up or down, it should be at least 0, and less than the radix.- Returns:
true if the concerned number should be rounded up, away
from zero; false if it should be rounded down, towards
zero.- Throws:
- IllegalArgumentException - if
number == null
|| radix < 2
|| radix > RealNumber.MAXIMUM_RADIX
|| digit < 0
|| digit >= radix.
roundImpl
protected abstract boolean roundImpl(RealNumber number,
int sign,
int radix,
int digit)
- Actually rounds the specified digit for a number in the specified base.
This method is called from
round(RealNumber,int,int).
- Parameters:
number - the number that is being rounded, guaranteed not to be
null and not to be zero.sign - the sign, either -1 or 1.radix - the radix (or base) for the digit, guaranteed to be at least 2 and at
most RealNumber.MAXIMUM_RADIX.digit - the digit of which should be determined whether it should be rounded
up or down, guaranteed to be at least 0, and less than the radix.- Returns:
true if the concerned number should be rounded up, away
from zero; false if it should be rounded down, towards
zero.
getName
public final String getName()
- Returns a short, human-presentable, description of this rounding mode.
- Returns:
- the name, never
null.
toString
public final String toString()
- Returns a textual presentation of this object.
- Overrides:
- toString in class Object
- Returns:
- a textual presentation of this object, never
null.
isConsistent
public final boolean isConsistent()
- Indicates if this rounding mode is consistent.
- Returns:
true if this rounding mode always rounds the same way
when passed the same arguments.
See http://jump-math.sourceforge.net/.