QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
Rounding Class Reference

#include <ql/math/rounding.hpp>

Inheritance diagram for Rounding:

Public Types

enum  Type {
  None , Up , Down , Closest ,
  Floor , Ceiling
}
 rounding methods More...

Public Member Functions

 Rounding ()=default
 default constructor
 Rounding (Integer precision, Type type=Closest, Integer digit=5)
Decimal operator() (Decimal value) const
 perform rounding

Inspectors

Integer precision () const
Type type () const
Integer roundingDigit () const

Detailed Description

A basic rounding class that supports truncating up to 16 decimal places (input precision range in [0,16]) and depends on a precision of rounding number. Note that the class does not validate the input range; supplying an unsupported rounding value may result in undefined behavior.

Tests
the correctness of the returned values is tested by checking them against known good results.

Member Enumeration Documentation

◆ Type

enum Type

rounding methods

The rounding methods follow the OMG specification available at http://www.omg.org/cgi-bin/doc?formal/00-06-29.pdf.

Warning
the names of the Floor and Ceiling methods might be misleading. Check the provided reference.
Enumerator
None 

do not round: return the number unmodified

Up 

the first decimal place past the precision will be rounded up. This differs from the OMG rule which rounds up only if the decimal to be rounded is greater than or equal to the rounding digit

Down 

all decimal places past the precision will be truncated

Closest 

the first decimal place past the precision will be rounded up if greater than or equal to the rounding digit; this corresponds to the OMG round-up rule. When the rounding digit is 5, the result will be the one closest to the original number, hence the name.

Floor 

positive numbers will be rounded up and negative numbers will be rounded down using the OMG round up and round down rules

Ceiling 

positive numbers will be rounded down and negative numbers will be rounded up using the OMG round up and round down rules

Constructor & Destructor Documentation

◆ Rounding()

Rounding ( )
default

default constructor

Instances built through this constructor don't perform any rounding.