src/cpython/decimal

Example:

import src/cpython/decimal
import nimpy
let x: PyDecimal = newDecimal"999999999999999999999999999999999999999.999999999999999999999999999999999999999"
let y: PyDecimal = -999999999999999999999999999999999999999.999999999999999999999999999999999999999'PyD
let z: PyDecimal = newDecimal BiggestUint.high
echo toString(x * y + z - z)

Types

PyDecimal = nimpy.PyObject

Procs

proc `'PyD`(value: string): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc newDecimal(value: SomeNumber or string): PyDecimal
proc prec(value: int) {....raises: [Exception, ValueError, OSError, IOError,
                                 EOFError, KeyError], tags: [RootEffect].}
proc toFloat(self: PyDecimal): BiggestFloat {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc toInt(self: PyDecimal): BiggestInt {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc toUint(self: PyDecimal): BiggestUInt {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc toString(self: PyDecimal): string {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `-`(a: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `+`(a: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `<`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `<=`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `==`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `>`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `>=`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `!=`(a, b: PyDecimal): bool {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `+`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `-`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `*`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `div`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `**`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `shl`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `shr`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `+=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc inc(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `-=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc dec(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `*=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `/=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `//=`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `&=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `<<=`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `>>=`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `%=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `@=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `|=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc `**=`(a, b: PyDecimal): PyDecimal {.
    ...raises: [Exception, ValueError, OSError, IOError, EOFError, KeyError],
    tags: [RootEffect].}
proc `^=`(a, b: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc low(self: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}
proc high(self: PyDecimal): PyDecimal {....raises: [Exception, ValueError, OSError,
    IOError, EOFError, KeyError], tags: [RootEffect].}