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)
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].}